MVC では、 a が aでaCheckBoxForを生成し、 aでa を生成することがわかっています。両方の入力コントロールが同じ名前を共有します。checkboxvalue="true"hiddenvalue=false
ボックスがチェックされていない場合、フォームは偽の値を POST できるため、非常に合理的です。チェックボックスが true を返すと、モデル バインダーは非表示の入力を無視します。
しかし、フォーム データを JSON 形式で WebAPI コントローラーに送信するために、フォーム送信イベントをオーバーライドしました。
フォーム データをシリアル化するときに、チェックボックスと非表示の関係を正しく解析するメカニズムがありません。したがって、チェックを外すと が返されますがfalse、これで問題ありません。しかし、チェックすると、関数はすべてを通過し、2 つの値が同じ名前になることがわかるため、{true, false}代わりに が返されます。trueserializeArray()input
問題は、それを修正する最善の方法は何ですか?