2

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

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

谢谢

弗朗切斯科

PS:Razor的答案更受欢迎

4

1 回答 1

3

编辑器/显示模板不适用于Dictionary<TKey, TValue>. 我个人避免使用这种类型,尤其是使用 EditorTemplates,因为为模型绑定器生成正确的字段名称可能是 PITA。

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

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

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

于 2011-05-24T12:32:29.853 回答