List <string> </string>的编辑器模板

时间:2011-03-14 17:00:01

标签: asp.net-mvc asp.net-mvc-3 c#-4.0 editortemplates

我希望在ASP.NET MVC3站点中为一些基本模型创建一个通用编辑器。现在,它们可以包含字符串,布尔值,枚举和列表集合。我想要做的是扩展默认编辑器模板以识别List并显示一个自定义编辑器,可以在此列表中添加和删除字符串。所有其他人都工作得很好。

因为我无法命名文件List.cshtml当然有没有办法让这个工作?另外,为什么enum默认情况下不会下拉枚举列表?

我知道我可以创建模型命名模板,但直到运行时才知道类名。

感谢您提供任何帮助和指导。

1 个答案:

答案 0 :(得分:14)

您可以为编辑器模板Foo.cshtml命名,其中Foo是列表的类型:List<Foo>。然后简单地说:

@Html.EditorFor(x => x.FooList)

如果FooListIEnumerable<Foo>,则会自动为此列表的每个元素呈现您的编辑器模板。因此,如果您已经拥有基本数据类型的编辑器模板,例如String,Decimal,DateTime,......当您执行@Html.EditorFor(x => x.SomeList)时,您的编辑器模板将会被选中。