从编辑器模板中访问自定义属性

时间:2017-07-13 13:37:03

标签: c# asp.net-mvc asp.net-mvc-4 razor

是否可以从该属性的编辑器模板中访问属性的自定义属性?

例如,我有一个带有自定义属性的简单类:

public class MyClass
{
   [MyCustomAttribute("myCustomValue")]
   public string Name { get; set; }
}

然后我有string的编辑器模板,我想检查字符串属性是否具有该自定义属性。

我尝试从视图中访问类型和CustomAttributes,但是当模型的实例为null时,这将不起作用。

1 个答案:

答案 0 :(得分:2)

我在编辑器模板中使用以下代码从属性

获取属性的值
var Member = ViewData.ModelMetadata.ContainerType.GetMember(ViewData.ModelMetadata.PropertyName);
var Attribute = Member[0].GetCustomAttribute<MyCustomAttribute>();
if(Attribute != null)
{
    <p>@Attribute.MyProperty</p>
} 

代码有点粗糙并做出一些假设,但你得到了一般的想法。