使用@Html.DisplayFor 和只使用@Model 有什么区别?

Vit*_*ova 2 asp.net-mvc razor asp.net-mvc-4

考虑一个带有属性的模型类PartnerName

在这种情况下,这两个代码看起来产生了相同的结果:

@Model.PartnerName
@Html.DisplayFor(m => m.PartnerName)
Run Code Online (Sandbox Code Playgroud)

使用一个对另一个有什么好处吗?因为第一个更干净。

编辑 为了清楚起见,我正在谈论这个特定的超载。

Dun*_*ect 5

当您使用@Model.PartnerName它显示一个值时,将纯值放入您的 HTML 中,而没有任何周围的标记。当您使用时,@Html.DisplayFor(m => m.PartnerName)您正在调用 DisplayTemplate 来呈现对象。

这些 DisplayTemplates 通常包含标记以确保值以某种方式显示。您还可以创建自定义 DisplayTemplates,以便您始终可以,例如,在带有边框和颜色的精美框内显示您的字符串。

查看本文以创建自定义 DisplayTemplates。http://www.codeguru.com/csharp/.net/net_asp/mvc/using-display-templates-and-editor-templates-in-asp.net-mvc.htm