我希望在ASP.NET MVC3站点中为一些基本模型创建一个通用编辑器。现在,它们可以包含字符串,布尔值,枚举和列表集合。我想要做的是扩展默认编辑器模板以识别List并显示一个自定义编辑器,可以在此列表中添加和删除字符串。所有其他人都工作得很好。
因为我无法命名文件List.cshtml当然有没有办法让这个工作?另外,为什么enum默认情况下不会下拉枚举列表?
我知道我可以创建模型命名模板,但直到运行时才知道类名。
感谢您提供任何帮助和指导。
答案 0 :(得分:14)
您可以为编辑器模板Foo.cshtml
命名,其中Foo
是列表的类型:List<Foo>
。然后简单地说:
@Html.EditorFor(x => x.FooList)
如果FooList
是IEnumerable<Foo>
,则会自动为此列表的每个元素呈现您的编辑器模板。因此,如果您已经拥有基本数据类型的编辑器模板,例如String,Decimal,DateTime,......当您执行@Html.EditorFor(x => x.SomeList)
时,您的编辑器模板将会被选中。