我想为Int32制作其他编辑器模板。在其中,我想获取所有属性(custom / default-data-annotations)并对其进行一些处理:
@model Int32
@{
string propertyName = ViewData.ModelMetadata.PropertyName;
var attributes = ViewData.ModelMetadata.GetSomeHowAllTheAttributesOfTheProperty;
SomeWorkWithAttribute(attributes);
}
<input type="text" name="@propertyName" value="@ViewData.ModelMetadata.DisplayFormatString" class="form-control"/>
那么问题是如何在EditorTemplate中获取属性的所有属性?
提前Thx
编辑:删除初始答案(问题中没有足够的信息):
由于您需要访问自定义属性,因此建议以下操作:
答:如果您只是使用自定义属性保存一些值,请使用AdditionalMetadataAttribute
:
模型:
[Additional("myAdditionalInfoField", "myAdditionalInfoValue")]
public int IntProperty { get; set; }
视图:
@{
string valueFromAttribute = ViewData.ModelMetadata.Additional["myAdditionalInfoField"].ToString();
}
B:如果您要在自定义属性中进行更复杂的工作,请获取模型的当前元数据属性,并将计算出的值保存在ViewData.ModelMetadata.Additional
字典中。请注意,这要求您实现自定义元数据提供程序。在这里可以找到详细的实现。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句