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

Difference between @Html.Display() and @Html.DisplayText()

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

Name = "my Name".

并且我正在使用 Html 助手以下列方式 -

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

两种方法的输出都是"my Name"

您可以查看 Display and DisplayText 的源代码。

@Html.DisplayText(propertyName)只会输出属性的值(由ModelMetadataSimpleDisplayText定义)。

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

在你的例子中,你 属性 是 string 并且你没有为 string 定义 DisplayTemplate,因此 Display() 使用默认值(in-built) 生成与 DisplayText()

相同输出的模板