ASP.NET MVC CheckBoxFor为什么会生成hidden input控件
@Html.CheckBoxFor(m => m.Bool)
使用CheckBoxFor方法得到的html代码会是下面这个样子
<input checked="checked" data-val="true" data-val-required="Bool 字段是必需的。" id="Bool" name="Bool" type="checkbox" value="true"> <input name="Bool" type="hidden" value="false">
在生成一个复选框的同时会同时得到一个type为hidden的input控件,复选框的value为true,hidden的value则为false,两个控件拥有相同的name属性。
为什么会有两个name值相同的input呢,如果我们选中该复选框不是把true和false都传递给服务端了。
1.未选中checkbox
未选中复选框比较好理解传递的就是hidden控件的value值,此时服务端得到的是false。如果没有hidden,服务端会得到null。
2.选中checkbox
选中的时候服务得到的值就是"true,false",此时会使用true值而忽略掉false
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。