Html.LabelFor指定文本

任何人有任何想法如何使用Html.LabelFor(c=>c.MyField)时指定文本。 这只是MyField可能不是一个合适的名称,你可能想要“超级奇妙的领域”,但似乎没有任何重载。

有任何想法吗?

您使用System.ComponentModel.DataAnnotations.DisplayAttribute

 [Display(Name = "My Field")] public string MyField { get; set; } 

在您的属性上设置ResourceType属性将允许您使用资源文件。

(在.NET 4之前,使用System.ComponentModel.DisplayNameAttribute时要注意显示名称必须是编译时常量。)

简单的解决scheme只需在视图中添加以下内容:

 @Html.LabelFor(c=>c.MyField, "My Field") 

在MVC 3中有一个新的重载,所以你应该能够指定标签帮助器的自定义testing。

我还没有下载v2,所以我不能testing,但我相信它适用于DynamicData,在这种情况下,你可以在你的模型上做这样的事情:

 [Display(Name = "The Super Fantastic Field")] public string MyField {get;set;} 

我还没有检查出CP1,但我读了Scott的发布,我似乎记得,代码是由T4生成的。 我想你总是可以修改它,但是我会怀疑它们会在CP2中提供重载。

编辑:源始终可用,因此你可以修改方法,改变T4发电机,你会很好去。 也放在一个票或请求(莫名其妙),所以它得到了工作到下一个版本。

有5个重载。 几个提供“stringlabelText”的第二个参数,您将设置为“超级奇妙的领域”。

有两种方法
1“直接注释”
2“Annotatinos与资源”
直接注释

 [Display(Name = "My Field")] public string MyField { get; set; } 

Annotatinos与资源

 [Display(Name = "My_Field",ResourceType = typeof(Resource))] public string MyField { get; set; } 

第二种方法将需要在资源文件中添加一个可能被命名为Resource.resx的值
使用适合你的目的。