所以我花了很多时间用Required,StringLength,Range,Display等来注释我的域实体。
然后我进入并开始创建具有正确域实体集的强类型视图。
我尝试的第一个视图是我的域实体的List Scaffolded视图,它具有慷慨应用的Display(Name =“foo”)属性。创建视图时,表头仍然使用属性名称,而不是我设置的显示名称。
带有April Tools更新的MVC3是否会忽略这些数据注释?
答案 0 :(得分:4)
假设您正在使用MvcScaffolding,那么是的,这些脚手架模板会忽略元数据。
但如果您按照this article进行操作,则可以创建自己的模板。完成后,您可以修改自己的模板。
在模板中查找此部分
<thead>
<tr>
<th></th>
<#
List<ModelProperty> properties = GetModelProperties(Model.ViewDataType, true);
foreach (ModelProperty property in properties) {
if (!property.IsPrimaryKey && !property.IsForeignKey && !property.IsEnumerable) {
#>
<th><#= property.Name #></th>
<#
}
}
#>
</tr>
</thead>
将<th><#= property.Name #></th>
更改为<th>@Html.LabelFor(x => x.First().<#= property.Name #>)</th>
,它将使用modelmetadata displayname。请谨慎但这只是为了快速说明如何根据索引视图的模板(具有IEnumerable&lt;&gt;作为模型)来处理它。