任何人都对使用时如何指定文本有任何想法Html.LabelFor(c=>c.MyField)
。它MyField
可能不是在屏幕上显示的适当名称,您可能想要“ The Super Fantastic Field”,但似乎没有任何重载。
有任何想法吗?
Answers:
您使用System.ComponentModel.DataAnnotations.DisplayAttribute
:
[Display(Name = "My Field")]
public string MyField { get; set; }
在ResourceType
属性上设置属性将允许您使用资源文件。
(.NET 4之前System.ComponentModel.DisplayNameAttribute
的警告是,显示名称必须是编译时常量。)
Error 381 An attribute argument must be a constant expression, typeof expression or array creation expression of an attribute parameter type
。因此,这种解决方案似乎对18n不利。
System.ComponentModel.DataAnnotations.DisplayAttribute
允许使用资源文件的.NET-4的新功能。如果您尚未使用4 / 4.5,则System.ComponentModel.DisplayNameAttribute
可以像这样扩展旧版本:stackoverflow.com/a/2432520/33533
MVC 3中有一个新的重载,因此您应该能够为helper标签指定自定义测试。
我尚未下载v2,因此无法测试,但我相信它的工作方式类似于DynamicData,在这种情况下,您可以在模型上执行以下操作:
[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
有两种方法
1“直接注释”
2“带有资源的
注释”直接注释
[Display(Name = "My Field")]
public string MyField { get; set; }
Annotatinos有资源
[Display(Name = "My_Field",ResourceType = typeof(Resource))]
public string MyField { get; set; }
第二种方法将需要在资源文件中添加一个可能名为 Resource.resx的值。
根据您的目的使用。
using System.ComponentModel;
。