c# - ASP.Net MVC 将标签值回发到您的 Controller

标签 c# asp.net-mvc asp.net-mvc-3

在使用 EditorTemplate 时,如果我希望模型上的值显示在屏幕上,而且还回发到 Controller ,我应该使用什么助手?

即。如果我使用 TextBoxFor:

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

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

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

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

...然后不会回传给 Controller 。

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

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

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

谢谢,

标记

最佳答案

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

这是实现您想要实现的目标的非常简洁和标准的方式。

如果您要制作自己的 HTML 帮助器来做完全相同的事情,那么通过节省一行只会让将来可能阅读您的代码的其他人甚至您自己感到困惑。

关于c# - ASP.Net MVC 将标签值回发到您的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17458569/

相关文章:

c# - GetCountry 查询中的 SQL 语法错误

c# - Winform标签控件文本变化的地方

c# - HttpResponseMessage 的内容作为 JSON

jquery - 带 Razor 的 MVC : how to refresh partial page on click?

asp.net-mvc-3 - ASP MVC 3,如何在 Controller 中设置模型属性?

ajax - 使用 Ajax 表单和分页 - 在下一页选择时丢失搜索参数

asp.net-mvc - MVC 数据注释范围验证无法正常工作

c# - 用于反编译代码的 Visual Studio 或 Resharper 扩展

c# - C# 中数组的不可变替代方案是什么?

javascript - 使用 javascript 通过 POST 请求将数据添加到数据库。如何在不了解对象的情况下添加数据?