Jam*_*mie 35 asp.net-mvc html-helper html.labelfor
我为什么要用LabelFor而不是<label>?
例如.
@Html.LabelFor(model => model.FirstName)
@Html.DisplayFor(model => model.FirstName)
Run Code Online (Sandbox Code Playgroud)
VS
<label for="FirstName">First Name</label>
@Html.DisplayFor(model => model.FirstName)
Run Code Online (Sandbox Code Playgroud)
除此之外,@ pswg已涵盖此问题的DRY方面.我还想知道它是否有助于本地化.即.基于当前语言设置的不同标签.
p.s*_*w.g 46
好吧,如果你用DisplayNameAttribute这样的装饰你的模型:
[DisplayName("First Name")]
string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
然后,您只需在一个位置指定标签文本的内容.您可能必须在多个位置创建类似的标签,如果您需要更改标签的文本,则只需执行一次即可.
如果您想要将应用程序本地化为不同的语言,这一点就更为重要,您可以使用以下方法DisplayAttribute:
[Display(Name = "FirstNameLabel", ResourceType = typeof(MyResources))]
string FirstName { get; set; }
Run Code Online (Sandbox Code Playgroud)
这也意味着你将拥有更强烈类型的视图."FirstName"如果你需要输入很多字符串就很容易指责字符串,但是使用辅助方法将允许编译器在大多数时候捕获这样的错误.
LabelFor 允许您从视图模型中控制所有内容,而无需担心控件.
假设您在2个位置使用相同的视图模型,这意味着您可以在一个位置更改名称以更新所有控件.
不会有被使用,但是它有它的用途.