Wir wissen, dass in MVC, ein CheckBoxFor
ein checkbox
mit einem value="true"
und hidden
mit einem value=false
generieren. Beide Eingabesteuerelemente haben denselben Namen.Wie Sie das Kontrollkästchen in einem Formular in JSON-Daten serialisiert
Es ist sehr sinnvoll, da das Formular einen falschen Wert senden kann, wenn das Kontrollkästchen deaktiviert ist. Und das Modellbinder wird die versteckte Eingabe ignorieren, wenn das Kontrollkästchen ein wahr zurückgibt.
Aber jetzt habe ich das Formular senden Ereignis überschrieben, um die Formulardaten in einen WebAPI-Controller im JSON-Format zu senden.
Bei der Serialisierung der Formulardaten gibt es keinen Mechanismus, um die Beziehung zwischen dem Kontrollkästchen und dem ausgeblendeten korrekt zu analysieren. Wenn sie deaktiviert ist, gibt sie daher false
zurück, was in Ordnung ist. Aber wenn es überprüft wird, gibt es {true, false}
statt true
zurück, weil die serializeArray()
Funktion jede input
durchläuft und zwei Werte findet, die zu einem gleichen Namen gehen.
Die Frage ist: Was ist der beste Weg, um es zu korrigieren?
möglich Duplikat von [ASP.Net MVC 4 WebAPI bindet Kontrollkästchen nicht korrekt?] (Http://stackoverflow.com/questions/11996285/asp-net-mvc-4s-webapi-does-not-bind-) Check-Boxen-richtig) –