因为 DisplayFor 不呈现属性的输入字段。这就是为什么它被称为 DisplayFor,而不是 EditorFor。它旨在用于向用户显示属性。
例如,假设您的模型中有一个名为 Name 的字符串属性,其值为“John”。在这种情况下,以下是页面上该属性的呈现方式Html.EditorFor和呈现方式:Html.DisplayFor
@Html.EditorFor(model => model.Name)
这将呈现为:
<input name="Name" id="Name" type="text" value="John" />
但,
@Html.DisplayFor(model => model.Name)
将呈现为:
John
顺便说一句,Html.HiddenFor将在您的页面上呈现一个隐藏字段,该字段将发布到您的控制器。有了上面的例子,
@Html.HiddenFor(model => model.Name)
将呈现如下:
<input name="Name" id="Name" type="hidden" value="John" />
EditorFor当您希望用户向您的页面输入数据时使用,当DisplayFor您希望向用户显示只读数据时使用,以及HiddenFor当您希望在提交表单时将数据发布到控制器时使用,但数据不应该由用户编辑和可见。一个示例是用户未编辑的 ID 字段,但您在表单中需要它。
看看这篇文章:@Html.DisplayFor 语法是什么?