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

ASP.NET MVC CheckBoxFor为什么会生成hidden input控件,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。