Sabemos que en MVC, un CheckBoxFor
generará una checkbox
con un value="true"
y una hidden
con un value=false
. Ambos controles de entrada compartirán el mismo nombre.Cómo serializar la casilla de verificación en un formulario de datos JSON en
Es muy razonable porque el formulario podrá POSTAR un valor falso si la casilla está desmarcada. Y la carpeta de modelo ignorará la entrada oculta cuando la casilla de verificación devuelva un valor verdadero.
Pero ahora he anulado el evento de envío de formularios para enviar los datos del formulario a un controlador WebAPI en formato JSON.
Al serializar los datos del formulario, no hay ningún mecanismo para analizar correctamente la relación entre la casilla de verificación y la casilla de verificación. Por lo tanto, cuando no se selecciona, devuelve un false
, lo cual está bien. Pero cuando está marcada, devuelve un {true, false}
en lugar de true
, porque la función serializeArray()
pasa por cada input
y encuentra que dos valores tienen el mismo nombre.
La pregunta es: ¿Cuál es la mejor manera de corregirlo?
posible duplicado de [ASP.Net MVC 4's WebAPI no vincula casillas de verificación correctamente?] (Http://stackoverflow.com/questions/11996285/asp-net-mvc-4s-webapi-does-not-bind- casillas de verificación correctamente) –