ASP.NET MVC:访问集合中项目的模型元数据
我正在尝试为索引视图编写一个自动脚手架。我希望能够传入模型或视图模型的集合(例如 IEnumerable
)并获取使用 DisplayName
的 HTML 表标题的属性(th
元素)和单元格的 Html.Display(propertyName)
(td
元素)。每一行应对应于集合中的一项。
当我仅显示一条记录时(如在“详细信息”视图中),我使用 ViewData.ModelMetadata.Properties 来获取给定模型的属性列表。但是,当我传递给视图的模型是模型或视图模型对象的集合而不是模型或视图模型本身时,会发生什么情况?
如何获取集合中特定项目的 ModelMetadata?
I'm trying to write an auto-scaffolder for Index views. I'd like to be able to pass in a collection of models or view-models (e.g., IEnumerable<MyViewModel>
) and get back an HTML table that uses the DisplayName
attribute for the headings (th
elements) and Html.Display(propertyName)
for the cells (td
elements). Each row should correspond to one item in the collection.
When I'm only displaying a single record, as in a Details view, I use ViewData.ModelMetadata.Properties
to obtain the list of properties for a given model. But what happens when the model I pass to the view is a collection of model or view-model objects and not a model or view-model itself?
How do I obtain the ModelMetadata for a particular item in a collection?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一个简单的扩展方法可能可以完成这项工作:
在您看来:
A simple extension method might do the job:
And in your view: