在我的 BE 类中,我有某些属性可以与表字段匹配。我想为这些属性中的每一个公开描述性名称。例如将其显示为网格中的列标题。
例如,有一个名为 的属性FirstName
。我想将它的描述性名称公开为First Name
为此,我创建了一个对数组作为这个 BE 类的属性。即,myarray("FirstName","First Name")
有没有更好的方法来做到这一点?
在我的 BE 类中,我有某些属性可以与表字段匹配。我想为这些属性中的每一个公开描述性名称。例如将其显示为网格中的列标题。
例如,有一个名为 的属性FirstName
。我想将它的描述性名称公开为First Name
为此,我创建了一个对数组作为这个 BE 类的属性。即,myarray("FirstName","First Name")
有没有更好的方法来做到这一点?
您可以在模型中执行此操作:
[Display(Name = "First Name")]
public string FirstName { get; set; }
然后在您的视图中,您可以像这样引用标签名称:
@Html.DisplayFor(m=>m.FirstName)
您可以[DisplayName("First name")]
在您的 BE 属性上使用属性。
然后在视图中使用:
@Html.LabelFor(m=>m.FirstName)
SO上的类似问题:How to change the display name for LabelFor in razor in mvc3?
编辑
您还可以[Display(Name="First name")]
在所有 BE 属性上使用该属性。然后创建一个模板来显示您的 BE(如何在此处创建模板的更多信息:如何为 DisplayFor() 创建 MVC Razor 模板)。
然后在视图中您只需使用:
@Html.DisplayFor(m=>m, "MyModelTemplateName")
我发现这很有用,这就是我解决它的方法。我发布这个是因为它可能对其他人有用。
在 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 类的对象实例在哪里。