8

使用 EditorTemplate 时,如果我希望模型上的值显示在屏幕上,同时又要回传到控制器,我应该使用什么助手?

IE。如果我使用 TextBoxFor:

@Html.TextBoxFor(model => model.RoomTypeName)

...然后用户可以修改文本...

我宁愿只显示文本,但如果我使用:

@Html.DisplayTextFor(model => model.RoomTypeName)

...然后不会将其发布回控制器。

因此,我可以显示文本并确保我的模型状态有效的唯一方法是添加第二个隐藏字段,例如:

@Html.DisplayTextFor(model => model.RoomTypeName)
@Html.HiddenFor(model => model.RoomTypeName)

我知道这行得通,但我想知道是否有更优雅的方法 - 这样我就可以显示值并将其发布回来,而无需将其复制为隐藏元素?

谢谢,

标记

4

1 回答 1

13
@Html.DisplayTextFor(model => model.RoomTypeName)
@Html.HiddenFor(model => model.RoomTypeName)

这是做你想要达到的目标的非常干净和标准的方式。

如果您要创建自己的 HTML 助手来完成完全相同的事情,那么通过保存一行只会让其他可能在未来阅读您的代码的人甚至您自己感到困惑。

于 2013-07-03T21:50:45.800 回答