有没有办法将编辑器和显示模板与 Dictionary一起使用?在 ASP.NET MVC3 中?
当我的模型(或子模型)是 List
对象时,我通常会使用 Editor 和 Display 模板。这样我就可以避免使用多个 foreach 结构“破坏”我的代码。
我想知道当模型是 Dictionary
对象时是否有办法使用 Editor 和 Display 模板。
谢谢
弗朗西斯科
PS:更赞赏 Razor 的答案
I usually make use of the Editor and Display templates when my model (or submodels) are List<T>
objects. This way I avoid to "spoil" my code with several foreach constructs.
I wanted to know whether there is any way to use Editor and Display templates when the model is a Dictionary<K,V>
object instead.
Thanks
Francesco
PS: answers with Razor are more appreciated
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编辑器/显示模板不能与
Dictionary
很好地配合使用。就我个人而言,我避免使用这种类型,尤其是与 EditorTemplates 一起使用,因为为模型生成正确的字段名称粘合剂可以是 PITA。我建议您定义一个自定义视图模型:
然后在您定义编辑器/显示模板的视图模型上有一个
IEnumerable
属性。这将使您的生活变得更加轻松。然后剩下的就是在模型属性(可能是Dictionary
)之间映射到视图模型属性。Editor/Display templates don't work well with
Dictionary<TKey, TValue>
. Personally I avoid using this type as such especially with EditorTemplates as producing correct field names for the model binder could be a PITA.I would recommend you defining a custom view model:
and then have a
IEnumerable<Item>
property on your view model for which you define Editor/Display templates. It will make your life much easier. Then all that's left would be to map between your model property (which potentially could be aDictionary<TKey, TValue>
) to the view model property.