@ Html.Display()和@ Html.DisplayText()之间的区别

时间:2018-03-14 10:11:32

标签: c# asp.net-mvc html-helper

@ Html.Display()和@ Html.DisplayText()之间的确切区别是什么?两者都给出相同的输出。 我有一个模型类Employee,它有一个属性

Name = "my Name".

我正在使用Html帮助程序 -

@Html.Display("Name")
@Html.DisplayText("Name")

两种方法的输出都是“我的名字”

1 个答案:

答案 0 :(得分:3)

您可以检查DisplayDisplayText的源代码。

@Html.DisplayText(propertyName)只会输出属性的值(由SimpleDisplayText的{​​{1}}定义。)

ModelMetadata提供了更多选择。如果您从属性类型中提供了@Html.Display(propertyName),则默认情况下它将使用该模板中的html。您还可以指定用于生成html的特定模板名称。此外,您可以使用DisplayTemplate的{​​{1}}参数将其他信息传递给模板。

在您的情况下,您的属性为additionalViewData,而您尚未为Display()定义string,因此DisplayTemplate使用生成的默认(内置)模板与string

相同的输出