ASP.Net MVC将标签值回发给控制器

当使用EditorTemplate时,如果我希望模型上的值显示在屏幕上,还要发布回控制器,我应该使用什么帮助器?

即。 如果我使用TextBoxFor:

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

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

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

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

…然后不会回发给控制器。

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

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

我知道这有用,但我想知道是否有更优雅的方式 – 所以我可以显示值,并将其发回,而不需要将其复制为隐藏元素?

谢谢,

标记

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

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

如果您要创建自己的HTML帮助程序,它完全相同,那么通过保存一行就会混淆将来可能会读取您的代码的其他人,甚至是您自己。