我有一个声明为类型 List<MyClass>
的模型属性.
public class MyModel
{
List<MyClass> MyProperty { get; set; }
}
我希望能够使用 Razor 模板显示/编辑属性。我的问题是,我如何命名 EditorTemplate View ,以便我可以使用正常语法显示该属性:
@model MyModel
@Html.DisplayFor(m => m.MyProperty)
我知道我可以创建一个名为 MyClass.cshtml 的 View ,它将用于类型 MyClass
,但如何为列表创建模板?
最佳答案
您可以使用 [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>
...
在这种情况下,模板引擎不会为集合属性的每个元素呈现模板。它只会将集合本身传递给模板。
关于asp.net-mvc - Collection 模型类的 EditorTemplate 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941013/