小编典典

asp.net mvc:为什么 Html.CheckBox 会生成额外的隐藏输入

all

我刚刚注意到Html.CheckBox("foo")生成 2 个输入而不是 1 个,有人知道为什么会这样吗?

<input id="foo" name="foo" type="checkbox" value="true" />
<input name="foo" type="hidden" value="false" />

阅读 71

收藏
2022-06-06

共1个答案

小编典典

如果未选中复选框,则不提交表单字段。这就是为什么隐藏字段中总是存在错误值的原因。如果您未选中复选框,表单仍将具有来自隐藏字段的值。这就是 ASP.NET
MVC 处理复选框值的方式。

如果您想确认这一点,请在表单上放置一个复选框,而不是使用 Html.Hidden,而是使用<input type="checkbox" name="MyTestCheckboxValue"></input>.
不选中复选框,提交表单并查看服务器端发布的请求值。您会看到没有复选框值。如果您有隐藏字段,它将包含带有值的MyTestCheckboxValue条目。false

2022-06-06