2017-03-31 46 views
0

我正在使用屬性描述符來一般性地遍歷屬性並將它們的屬性名稱打印爲表頭。它工作正常打印的屬性名稱,而不是爲[顯示(名稱= 「測試」)如何使用PropertyDescriptor獲取顯示名稱屬性C#ASP.NET MVC 4

類:

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> 
    } 

只是打印 「刪除」名稱而不是「測試」。描述符有一個Name和DisplayName選項,並且都設置爲「DELETE」

我在做什麼錯了?

+0

是否有你的對象descriptor.Identifier.Text財產? –

回答

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檢查。

+0

謝謝你的工作。另一個是DataAnnotations的一部分。 – eaglei22

1

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

+0

工作,謝謝! – eaglei22