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

本文关键字:Html Displayfor MVC 什么时候 | 更新日期: 2023-09-27 18:25:59

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

知道吗?

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

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

以下是它的工作原理:

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

将呈现给定类型的默认模板。例如,如果您用一些格式选项装饰了视图模型属性,它将尊重这些选项:

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

在您的视图中,当您使用DisplayFor辅助对象时,它将通过考虑此格式来呈现属性,而如果您仅使用@Model.SomeProperty,它将不尊重此自定义格式。

但不知道什么时候用?

如果要显示视图模型中的值,请始终使用它。始终使用:

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

而不是:

@Model.SomeProperty

我扩展@Darin的答案。

Html.DisplayFor(model => model.SomeCollection)将在SomeCollection中的项目上迭代,并使用DisplayFor()递归地显示这些项目。