【问题标题】:Editor Templates for List<string>List<string> 的编辑器模板
【发布时间】:2011-07-15 04:18:57
【问题描述】:

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

因为我当然不能命名文件 List.cshtml 有没有办法让它工作?另外为什么枚举默认不下拉枚举列表?

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

感谢您的帮助和指导。

【问题讨论】:

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


    【解决方案1】:

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

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

    如果FooListIEnumerable&lt;Foo&gt;,您的编辑器模板将自动为该列表的每个元素呈现。因此,如果您已经拥有基本数据类型的编辑器模板,例如 String、Decimal、DateTime,......当您这样做时,@Html.EditorFor(x =&gt; x.SomeList) 您的编辑器模板将被选中。

    【讨论】:

    • 如果您想要一个 EditorTemplate 用于实际列表怎么办?例如。我想写一个观点:ThingList.cshtmlThing.cshtmlThingList.cshtml 会将 Things 包装在一个 div 中,或者应用一些样式等。
    • 好答案,一个问题:在最后一个例子中,EditorFor 会生成一个列表,它将编辑器模板的输出放在&lt;li&gt; 中?
    • @Josh M:我敢打赌,您需要将 List 包装在自定义类中,并将其类型名称用作编辑器模板名称。
    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多