我々はMVCで、CheckBoxFor
はvalue="true"
とcheckbox
とvalue=false
とhidden
を生成することがわかっています。どちらの入力コントロールも同じ名前を共有します。JSONデータにフォームのチェックボックスをシリアライズする方法
ボックスがチェックされていないと、フォームが誤った値をPOSTすることができるため、非常に妥当です。また、モデルバインダーは、チェックボックスがtrueを返すときに隠れた入力を無視します。
しかし、フォームデータをJSON形式のWebAPIコントローラに送信するために、フォーム送信イベントをオーバーライドしました。
フォームデータをシリアル化するとき、チェックボックスと非表示の間の関係を正しく解析するメカニズムはありません。したがって、チェックを外すとfalse
が返されます。これは問題ありません。しかしチェックされると、serializeArray()
関数はすべてinput
を通過し、2つの値が同じ名前になるため、true
の代わりに{true, false}
を返します。
質問は次のとおりです。それを修正する最も良い方法は何ですか?
[ASP.Net MVC 4のWebAPIは、チェックボックスを正しくバインドしませんか?](http://stackoverflow.com/questions/11996285/asp-net-mvc-4s-webapi-does-not-bind-チェックボックス - 正しく) –