有没有办法在ASP.NET MVC3中使用Dictionary <k,v>的编辑器和显示模板?</k,v>

时间:2011-05-24 12:02:34

标签: c# asp.net-mvc-3 dictionary mvc-editor-templates display-templates

当我的模型(或子模型)是List<T>个对象时,我通常会使用编辑器显示模板。这样我就可以避免使用几个 foreach 结构“破坏”我的代码。

我想知道当模型是Dictionary<K,V>对象时,是否有任何方法可以使用编辑器显示模板。

由于

弗朗西斯

PS: Razor 的答案更受欢迎

1 个答案:

答案 0 :(得分:3)

编辑器/显示模板与Dictionary<TKey, TValue>无法正常工作。我个人避免使用这种类型,尤其是使用EditorTemplates,因为模型绑定器的生成correct field names可能是PITA。

我建议您定义自定义视图模型:

public class Item
{
    public string Key { get; set; }
    public string Value { get; set; }
}

然后在视图模型上有一个IEnumerable<Item>属性,您可以为其定义编辑器/显示模板。它会让你的生活更轻松。然后剩下的就是将您的模型属性(可能是Dictionary<TKey, TValue>)映射到视图模型属性。