【问题标题】:EditorTemplate Naming Convention for Collection model classesCollection 模型类的 EditorTemplate 命名约定
【发布时间】:2013-06-05 13:17:47
【问题描述】:

我有一个声明为类型List<MyClass> 的模型属性。

public class MyModel
{
    List<MyClass> MyProperty { get; set; }
}

我希望能够使用 Razor 模板显示/编辑属性。我的问题是,我如何命名 EditorTemplate 视图,以便可以使用正常语法显示属性:

@model MyModel
@Html.DisplayFor(m => m.MyProperty)

我知道我可以创建一个名为 MyClass.cshtml 的视图,该视图将用于 MyClass 类型,但是如何为列表创建模板?

【问题讨论】:

    标签: asp.net-mvc mvc-editor-templates razor-2


    【解决方案1】:

    您可以使用[UIHint] 属性:

    public class MyModel
    {
        [UIHint("TemplateForTheList")]
        public List<MyClass> MyProperty { get; set; }
    }
    

    或将模板名称指定为DisplayFor 助手的第二个参数:

    @model MyModel
    @Html.DisplayFor(m => m.MyProperty, "TemplateForTheList")
    

    然后有一个TemplateForTheList.cshtml 模板:

    @model List<MyClass>
    ...
    

    在这种情况下,模板引擎不会为集合属性的每个元素呈现模板。它只会将集合本身​​传递给模板。

    【讨论】:

      猜你喜欢
      • 2011-01-19
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多