集合模型类的 EditorTemplate 命名约定

2023-12-06

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

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

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

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

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


你可以使用[UIHint]属性:

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

或指定模板名称作为第二个参数DisplayFor helper:

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

然后有一个TemplateForTheList.cshtml模板:

@model List<MyClass>
...

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集合模型类的 EditorTemplate 命名约定 的相关文章

随机推荐