List <string>的编辑器模板

Ric*_*ard 4 asp.net-mvc editortemplates c#-4.0 asp.net-mvc-3

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

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

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

感谢您的帮助和指导.

Dar*_*rov 14

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

@Html.EditorFor(x => x.FooList)
Run Code Online (Sandbox Code Playgroud)

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

  • 如果你想要一个EditorTemplate用于实际列表怎么办?例如,我想写一个视图:`ThingList.cshtml`和`Thing.cshtml`.`ThingList.cshtml`会将`Thing`s包装在div中,或者应用一些样式等. (11认同)