【问题标题】:Access Custom Attribute from within an Editor Template从编辑器模板中访问自定义属性
【发布时间】:2017-07-13 13:37:03
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

    代码有点粗略,做了一些假设,但你明白了。

    【讨论】:

      猜你喜欢
      • 2011-04-19
      • 2023-04-07
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多