我的EntityFramework域模型中有以下内容:
[Required]
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Required]
[Display(Name = "Last Name")]
public string LastName { get; set; }
在我看来,我会做以下事情:
@Html.LabelFor(model => model.FirstName)
但我想知道,为什么首选指定"显示名称"在我的模型中,而不是仅在View页面中手动编写Label?
我实际上可以看到这会导致更多的问题,如果在6个月的时间内有人来找我说“我们不想让它再说出名字,我们希望它能说出来&#34 ;你的名字"我要么必须在我的视图中恢复硬编码,要么重新编译我的模型项目以使更改生效..
使用数据注释是否有任何我不知道的好处?
答案 0 :(得分:3)
DisplayAttribute
的好处是本地化,如下面的代码。
[Required]
[Display(Name = "First Name", ResourceType = typeof(YourResources)))]
public string FirstName { get; set; }
ASP.NET MVC 3 localization with DisplayAttribute and custom resource provider对本地化以及实现它的不同方式有一些很好的答案。
答案 1 :(得分:2)
好处只是DRY。
所以你目前在一个地方使用它,你的编辑页面。现在添加:
现在你必须在15个以上的地方改变它,错过一个......很高的机会 [一个或多个错字的机会......不低]
因此,在您使用的每一个中都引用了DisplayName而不是手动输入...现在您只需要在... 1位置进行更改。