我有一个通用类型的模型类。我想创建一个自定义编辑器模板,将其显示(并将其放在共享文件夹中)。
我该怎么做?
我无法弄清楚如何命名它,以便MVC2可以通过通用模板获取它。
此外,我想知道是否有办法明确指定顶级类应该使用哪个模板(就像使用UIHint属性可以处理属性一样)。有没有办法覆盖基于类名选择模板的功能?
请帮忙。
答案 0 :(得分:0)
最简单的方法是完成#1是在显示模型时指定模板名称,作为第二个参数:
<%= Html.DisplayFor(m => m.GenericList, "DisplayList")%>
处理泛型在MVC2中不是很好。源代码说:
// TODO: Make better string names for generic types
因此,在呈现列表时,如果您没有指定其他名称,它会查找名为List`1的模板作为默认值来呈现它。
关于第二点,你会做与#1相同的事情。指定templatename或在渲染项目时使用UIHint。