在剃刀引擎我用LabelFor
辅助方法来显示的名称
但显示名称是似乎并不好显示。 所以我需要改变我的显示名称,该怎么办呢....
@Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})
在剃刀引擎我用LabelFor
辅助方法来显示的名称
但显示名称是似乎并不好显示。 所以我需要改变我的显示名称,该怎么办呢....
@Html.LabelFor(model => model.SomekingStatus, new { @class = "control-label"})
你可以用装饰你的视图模型属性[DisplayName]
属性,并指定文本中使用:
[DisplayName("foo bar")]
public string SomekingStatus { get; set; }
或者使用LabelFor帮手,它允许您指定文本的另一个重载:
@Html.LabelFor(model => model.SomekingStatus, "foo bar")
而且,不,你不能在MVC3指定一个类名,你试图这样做,因为LabelFor
助手不支持。 然而,这将在MVC4或5工作。
这是一个老问题,但现有的答案忽视,当你重新生成模型扔掉任何自定义的严重的问题属性。 我增加了更详细的解答,以填补目前可供选择。
[DisplayName("Name goes here")]
属性的数据模型类。 不利的一面是,这是扔掉时,你重新生成数据模型。 Html.LabelFor
。 例如@Html.LabelFor(model => model.SomekingStatus, "My New Label", new { @class = "control-label"})
参考: https://msdn.microsoft.com/en-us/library/system .web.mvc.html.labelextensions.labelfor(v = vs.118)的.aspx这样做的缺点是,你必须重复的标签,每个视图。 微软允许用于装饰上的实体框架类的属性, 而无需修改现有的类 ! 这通过具有连接到您的数据库类(有效的EF类的侧身扩展)元数据类。 这允许属性添加到相关类 ,而不是类本身,所以当你重新生成数据模型的更改不会丢失 。
例如,如果你的数据类是MyModel
与SomekingStatus
属性,你可以做这样的:
首先声明一个局部类同名的(并且使用相同的命名空间),它允许您添加类属性没有被覆盖:
[MetadataType(typeof(MyModelMetaData))]
public partial class MyModel
{
}
所有生成的数据模型类是局部类,它允许你通过简单地创建多个类的同名增加额外的属性和方法(这是非常方便,我经常用它如提供其他字段类型的模型中的格式化字符串版本)。
第2步:通过添加新的部分类中引用的metatadata类:
public class MyModelMetaData
{
// Apply DisplayNameAttribute (or any other attributes)
[DisplayName("My New Label")]
public string SomekingStatus;
}
参考: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.metadatatypeattribute(v=vs.110).aspx
[required]
等),所以你可能需要重复那些在元数据类。 您可以通过装饰用的属性来更改标签的文本DisplayName
属性。
[DisplayName("Someking Status")]
public string SomekingStatus { get; set; }
或者,你可以明确地写了原始的HTML:
<label for="SomekingStatus" class="control-label">Someking Status</label>
装饰用的显示名称属性模型属性。
@ Html.LabelFor(型号=> model.SomekingStatus, “富栏”)