我是MVC新手,知道如何使用Html.Displayfor()
,但我不知道何时使用它?
有什么想法吗?
答案 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()
的项目。