将通用类型与MVC2模板一起使用

时间:2010-06-28 22:04:31

标签: asp.net-mvc-2 asp.net-mvc-2-metadata

我有一个通用类型的模型类。我想创建一个自定义编辑器模板,将其显示(并将其放在共享文件夹中)。

我该怎么做?

我无法弄清楚如何命名它,以便MVC2可以通过通用模板获取它。

此外,我想知道是否有办法明确指定顶级类应该使用哪个模板(就像使用UIHint属性可以处理属性一样)。有没有办法覆盖基于类名选择模板的功能?

请帮忙。

1 个答案:

答案 0 :(得分:0)

最简单的方法是完成#1是在显示模型时指定模板名称,作为第二个参数:

<%= Html.DisplayFor(m => m.GenericList, "DisplayList")%>

处理泛型在MVC2中不是很好。源代码说:

// TODO: Make better string names for generic types

因此,在呈现列表时,如果您没有指定其他名称,它会查找名为List`1的模板作为默认值来呈现它。

关于第二点,你会做与#1相同的事情。指定templatename或在渲染项目时使用UIHint。