2

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

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

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

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

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

4

1 回答 1

7

您可以使用以下[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>
...

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

于 2013-06-05T13:20:28.473 回答