86

任何人都知道如何在使用Html.LabelFor(c=>c.MyField). 它MyField可能不适合在屏幕上显示,您可能想要“The Super Fantastic Field”,但似乎没有任何重载。

有任何想法吗?

4

7 回答 7

141

您使用System.ComponentModel.DataAnnotations.DisplayAttribute

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

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

(在 .NET 4 之前使用System.ComponentModel.DisplayNameAttribute的警告是显示名称必须是编译时常量。)

于 2009-08-21T17:33:58.707 回答
55

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

@Html.LabelFor(c=>c.MyField, "My Field")
于 2012-07-31T16:28:11.420 回答
26

MVC 3 中有一个新的重载,因此您应该能够为 helper 的 label 指定自定义测试。

于 2010-11-24T05:20:17.687 回答
3

我还没有下载 v2,所以我无法测试,但我相信它像 DynamicData 一样工作,在这种情况下,你会在你的模型上做这样的事情:

[Display(Name = "The Super Fantastic Field")]
public string MyField {get;set;}
于 2009-08-21T16:24:55.303 回答
2

有两种方式
1“直接注解”
2“Annotatinos with a resource”
直接注解

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

带有资源的注释

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

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

于 2017-01-31T16:56:41.847 回答
0

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

编辑:源始终可用,因此您只需修改方法,更改 T4 生成器,您就可以开始使用了。还为该模块输入票证或请求(以某种方式),以便将其用于下一个版本。

于 2009-08-21T16:17:50.560 回答
0

有 5 个重载。有几个提供“string labelText”的第二个参数,您可以将其设置为“The Super Fantastic Field”。

于 2014-04-13T21:40:48.393 回答