如何使用PropertyDescriptor C#ASP.NET MVC 4获取显示名称属性

时间:2017-03-31 19:27:59

标签: c# asp.net-mvc razor

我正在使用属性描述符来泛化属性并将其属性名称打印为表头。它可以很好地打印属性名称,但不适用于[显示(名称="测试")]

类别:

public class Transaction
{
    [Display(Name = "Test")]
    public string DELETE { get; set; }
    public string PARTNO { get; set; } //Part Number 

标记:

    @foreach (System.ComponentModel.PropertyDescriptor descriptor in System.ComponentModel.TypeDescriptor.GetProperties(Model[0]))
    {
       <th onclick="tableColumnSort(this)" class="tableSortHeaderBtnStyle">@descriptor.DisplayName;</th>
    }

只需打印&#34; DELETE&#34;名字而不是&#34;测试&#34;。描述符有一个Name和DisplayName选项,两者都设置为&#34; DELETE&#34;

我做错了什么?

2 个答案:

答案 0 :(得分:1)

您必须使用[DisplayName("Test")]代替[Display(Name = "Test")],请检查:

public class Transaction
{
    //[Display(Name = "Test")]
    [DisplayName("Test")]
    public string DELETE { get; set; }
    public string PARTNO { get; set; } //Part Number 
}

您可以在DotNetFiddle

中查看此内容

答案 1 :(得分:1)

使用[DisplayName("Test")]代替[Display(Name = "Test")]