使用@ Html.DisplayFor和使用@Model之间的区别是什么?

时间:2016-04-01 12:40:11

标签: asp.net-mvc asp.net-mvc-4 razor

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

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

@Model.PartnerName
@Html.DisplayFor(m => m.PartnerName)

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

修改 而且要明确我正在谈论这种特定的过载。

1 个答案:

答案 0 :(得分:4)

使用@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