Asp.net-Mvc
ASP.Net MVC 4 的 WebAPI 沒有正確綁定複選框?
我正在將 WebAPI 合併到我的開發中,並將所有表單送出發佈到 WebAPI 控制器。我注意到復選框沒有正確綁定到模型。我有一個表格使用:
@Html.CheckBoxFor(m => m.HasVideo)它產生一個複選框和一個隱藏的表單元素。當我選中復選框(表示“真”值)時,我的 WebAPI Post 中的模型綁定反映了 HasVideo 屬性的假。我將整個方法移到了傳統的 mvc 控制器上,並且綁定按預期工作。
是否有解決方法,或者我缺少什麼?
不要使用這個 html 助手:
@Html.CheckBoxFor(m => m.HasVideo)試試這個:
<input id="HasVideo" name="HasVideo" type="checkbox" value="true" @(((Model!=null) && Model.HasVideo) ? "checked=\"checked\"" : "" ) />
我也見過這個。網路上沒有太多關於此的內容,並且應該在某處進行更多記錄。如果兩者都找到,標準控制器會更喜歡 true 而不是 false,但 api 控制器看起來就像他們只使用找到的最後一個值。
此頁麵包含一些可能支持這一假設的資訊:http: //blogs.msdn.com/b/jmstall/archive/2012/04/16/how-webapi-does-parameter-binding.aspx