【问题标题】:MVC DisplayFor Template SelectionMVC DisplayFor 模板选择
【发布时间】:2013-08-23 08:36:56
【问题描述】:

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

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: asp.net-mvc displayfor


    【解决方案1】:

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

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

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

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

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

    正确。

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

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

    【讨论】:

      猜你喜欢
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多