在我的BE類中,我有一些與表字段匹配的屬性。我想爲每個這些屬性公開描述性名稱。例如將其顯示爲網格中的列標題。例如,FirstName
有一個屬性。我想公開它的描述性名稱爲First Name
C中BE屬性的標籤#
爲此,我創建了一對數組作爲此BE類的一個屬性。即myarray("FirstName","First Name")
有沒有更好的方法來做到這一點?
在我的BE類中,我有一些與表字段匹配的屬性。我想爲每個這些屬性公開描述性名稱。例如將其顯示爲網格中的列標題。例如,FirstName
有一個屬性。我想公開它的描述性名稱爲First Name
C中BE屬性的標籤#
爲此,我創建了一對數組作爲此BE類的一個屬性。即myarray("FirstName","First Name")
有沒有更好的方法來做到這一點?
我發現這個有用的,這是我如何解決它。我發佈這個,因爲它可能對其他人有用。
在BE中對此進行了定義。
[DisplayName("First Name"), Description("First Name of the Member")]
public string FirstName
{
get { return _firstName; }
set { _firstName = value; }
}
您可以閱讀每個屬性的這些細節如下;
PropertyDescriptorCollection propertiesCol = TypeDescriptor.GetProperties(objectBE);
PropertyDescriptor property;
for (int i = 0; i < propertiesCol.Count; i++)
{
property = TypeDescriptor.GetProperties(objectBE)[i];
/*
// Access the Property Name, Display Name and Description as follows
property.Name // Returns "FirstName"
property.DisplayName // Returns "First Name"
property.Description // Returns "First Name of the Member"
*/
}
objectBE
是BE類的對象實例。您可以在模型中做到這一點:
[Display(Name = "First Name")]
public string FirstName { get; set; }
,然後在視圖中,您可以參考的標籤名稱是這樣的:
@Html.DisplayFor(m=>m.FirstName)
您可以在需購房使用[DisplayName("First name")]
屬性。
然後在視圖中使用: @Html.LabelFor(m=>m.FirstName)
類似的問題在這裏對SO:How to change the display name for LabelFor in razor in mvc3?
編輯
您還可以使用[Display(Name="First name")]
屬性在所有的BE屬性。 然後創建一個模板來顯示您的BE(更多信息如何在這裏創建模板:How do I create a MVC Razor template for DisplayFor())。
然後在視圖中,您將只需使用:
@Html.DisplayFor(m=>m, "MyModelTemplateName")
'DisplayFor'將顯示FirstName值(使用默認或預定義的模板),而不是屬性的*名稱*。你可能是指'@ Html.DisplayNameFor(m => m.FirstName)'。 – mipe34