1

我是否正确地说,在 MVC 中,如果我有一个模型实体,比如说客户,我使用

@Html.DisplayFor(x=>x.Customer)

它将寻找一个“命名”客户的显示模板来显示实体?

而且,如果您传递模板的对象是 IEnumerable 或某种集合,MVC 会自动执行迭代吗?例如

@Html.DisplayFor(x => x.AllCustomers)

因此,如果我想为客户创建一个额外的视图并强制助手使用它,例如

@Html.DisplayFor(x => x.AllCustomers, "MyCustomTemplate")

那么该模板必须是 IEnumerable 类型的强类型视图,对吗?而且我必须自己创建迭代代码?

如果 MVC 识别出模型实体与视图的模型类型匹配,则似乎 MVC 会执行迭代位。

4

1 回答 1

1

它将寻找一个“命名”客户的显示模板来显示实体?

是的。object如果找不到,它将使用默认显示模板。

而且,如果您传递模板的对象是 IEnumerable 或某种集合,MVC 会自动执行迭代吗?

该框架使用内置模板来IEnumerable<T>执行迭代,所以从技术上讲是的。

那么该模板必须是 IEnumerable 类型的强类型视图,对吗?

正确的。

而且我必须自己创建迭代代码?

你说的对。一旦您指定了自定义显示模板名称,框架将使用您的模板而不是默认模板,因此它必须是IEnumerable<T>.

于 2013-08-21T07:19:44.373 回答