防止隐藏文本框回发

时间:2014-10-30 17:13:43

标签: asp.net-mvc

如果当前隐藏了MVC,是否有办法让MVC忽略发布绑定文本框?

@Html.TextBoxFor(x => x.Value, new { style = "display:none;"})

我真的不想用javascript来完成这个,但想知道MVC是否可以开箱即用。

这是一个javascript解决方案: 发布之前清除任何隐藏文本框的ID和名称字段以防止MVC绑定。

有没有更好的非JavaScript方式来到同一个结束游戏?

2 个答案:

答案 0 :(得分:3)

禁用它:

@Html.TextBoxFor(x => x.Value, new { style = "display:none;", disabled = "disabled"})

答案 1 :(得分:1)

当然我不知道它的全部需求,但是如果你想从后端带来一些数据,并且需要在html代码上保存这些数据(例如,在前端使用它)并且你不需要再次将它回发给服务器,我会为了避免使用TextBoxFor而持久化,并且坚持使用'数据 - '属性。

<div id="someId" data-my-important-value="@Model.Value"> ... </div>

像这样,你将从你的后端带来你的数据,将确保这不会再发回服务器,并且能够使用javascript,jQuery,angujarJs从前端请求它...

var importantValue = $('#someId').attr('data-my-important-value');

正如我所说,只是等待威胁这个场景。由于@MajoB已经给出了快速而有效的答案。