我正在尝试利用 ASP.NET MVC 索引 View 中的 DataAnnotation 值。有趣的是,代码生成器使用字段名称(例如,BlogPost)而不是 Html.LabelFor(m => Model.ColumNames["BlogPost"])
或类似的东西(我编的)。
这是否意味着,如果模型是 IEnumerable(如在索引 View 中),那么就不可能获得由 DataAnnotation 指定的显示名称?难以置信...
我的代码目前是 MVC 2 和 MVC 3 的混合体,如果有什么不同的话。
最佳答案
至少,您应该能够通过使用部分 View (WebForms 的 ascx)或显示/编辑器模板来获得所需的内容。在您的索引页面中,您可以遍历您的可枚举项并将项目传递到局部 View 或模板中。
可能有一种方法可以不必按照我的建议去做(我很想看到答案),但是我建议的应该可以正常工作。
编辑:
经过一些澄清,这是我更新的答案。
您仍然可以获得属性的标签,同时仍然遵守 DisplayAttribute
在数据注释中。我很快就尝试了这个,它似乎工作正常。
在我看来,我有以下几点:
Html.LabelFor(m => m.BlogPosts.First().BlogPostTitle)
即使枚举本身没有项目,这也有效。当我第一次测试时,我得到了属性名称,然后我添加了用
DisplayAttribute
装饰的属性。并且显示了 name 属性的值而不是标准属性名称。
关于asp.net-mvc - 是否可以将 LabelFor 用于索引 View 中的标题行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4709367/