Bla*_*man 3 html asp.net checkbox asp.net-mvc
我在asp.net mvc应用程序中渲染一个复选框,控件也输出一个隐藏字段,如下所示:
<input id="blah-64" name="blah-64" value="true" type="checkbox">
<input name="blah-64" value="false" type="hidden">
Run Code Online (Sandbox Code Playgroud)
问题是,当我发布表单时,表单键"blah-64返回",关闭".
为什么是这样?
如果您查看Checkbox帮助程序的源代码,您将看到一条解释它的注释.它看起来像这样:
if (inputType == InputType.CheckBox) {
// Render an additional <input type="hidden".../> for checkboxes. This
// addresses scenarios where unchecked checkboxes are not sent in the request.
// Sending a hidden input makes it possible to know that the checkbox was present
// on the page when the request was submitted.
...
Run Code Online (Sandbox Code Playgroud)
这是因为W3C规范说,"当提交表单时,只有"复选框控件才能成功." (成功作为提交价值的期限).隐藏字段确保提交它们,无论它们是否被检查.如果您不想要这种行为,那么最简单的方法是自己呈现HTML而不使用帮助器.
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |