ASP.NET MVC: pasar varios valores de casilla de verificación al controlador

Estoy creando un ayudante html personalizado que me permitirá agrupar varias casillas de verificación a la vez. Estoy usando un elemento span además de la casilla de verificación porque necesito diseñar la casilla de verificación de una manera que no se puede hacer con el elemento nativo. El siguiente es un resultado de muestra de mi HTML Helper personalizado:

<span class="checkbox" id="peopleInvolved-1"></span>
<input id="checkbox-peopleInvolved-1" name="peopleInvolved" style="display:none" type="checkbox" value="1"></input>
<label for="peopleInvolved-1">John Doe</label><br /> 

El usuario hace clic en el elemento span (o, opcionalmente, en la etiqueta) e imita una casilla de verificación a través de la magia de jQuery. Esa parte funciona muy bien. La parte que me cuesta entender es pasar estos datos al controlador correctamente. Actualmente estoy haciendo lo siguiente para recuperar los resultados:

public ActionResult Index(string[] peopleInvolved){}

Entiendo que con mi configuración actual solo los valores marcados regresarán al controlador. También entiendo que este es el caso debido a una limitación de HTML y que la solución alternativa nativa de ASP.NET es crear un elemento oculto adicional junto a cada casilla de verificación. No tengo problemas para agregar un elemento de entrada oculto adicional, pero ¿cómo se aplicaría eso en mi escenario? Tendré varias casillas de verificación agrupadas con el mismo nombre.

Gracias.

preguntado el 27 de agosto de 11 a las 21:08

1 Respuestas

Parece que lo que quiere hacer es enviar una lista de valores de cadena de varios elementos html con el mismo nombre. Lo que haría es reemplazar la casilla de verificación con un elemento oculto, con un atributo como data-value="John Doe" y completar o deshacer el valor del elemento oculto al hacer clic en el elemento html de su elección.

Ejemplo disponible Aquí.

Respondido 28 ago 11, 07:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.