当我的模型(或子模型)是List<T>
个对象时,我通常会使用编辑器和显示模板。这样我就可以避免使用几个 foreach 结构“破坏”我的代码。
我想知道当模型是Dictionary<K,V>
对象时,是否有任何方法可以使用编辑器和显示模板。
由于
弗朗西斯
PS: Razor 的答案更受欢迎
答案 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>
)映射到视图模型属性。