我什么时候应该在MVC中使用Html.Displayfor

时间:2012-02-27 12:55:44

标签: c# asp.net-mvc asp.net-mvc-3

我是MVC新手,知道如何使用Html.Displayfor(),但我不知道何时使用它?

有什么想法吗?

2 个答案:

答案 0 :(得分:66)

DisplayFor帮助器为给定类型呈现相应的显示模板。例如,如果你想以某种方式个性化这个模板,你应该使用它。或者使用集合属性。与集合属性一起使用时,将自动为集合的每个元素呈现相应的模板。

以下是它的工作原理:

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

将呈现给定类型的default template。例如,如果您使用某些格式选项修饰了视图模型属性,那么它将遵循这些选项:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime SomeProperty { get; set; }

并且在您的视图中使用DisplayFor帮助程序时,它将通过考虑此格式来呈现属性,而如果您仅使用@Model.SomeProperty,则它不会尊重此自定义格式。

  

但是不知道何时使用它?

当您想要从视图模型中显示值时,请始终使用它。始终使用:

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

而不是:

@Model.SomeProperty

答案 1 :(得分:6)

我正在延长@ Darin的答案。

Html.DisplayFor(model => model.SomeCollection)会迭代SomeCollection中的项目,并递归显示使用DisplayFor()的项目。