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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM