Tengo un formulario que contiene un montón de casillas de verificación y algunos otros tipos de control también. Necesito recuperar los nombres de cada casilla de verificación seleccionada.Obteniendo todas las casillas de verificación seleccionadas de un FormCollection
¿Cuál es la mejor manera de hacerlo? ¿Puedo hacerlo con una consulta de linq?
Así que en pseudocódigo, estoy buscando hacer algo como esto:
var names = formCollection
.Where(c => c is Checkbox && c.Checked)
.Select(c => c.Name);
actualización Parece el camino MVC somete casillas de verificación es diferente de cómo se comportaría de una forma normal, como un campo oculto es también prestado. Encontré los detalles aquí: How to handle checkboxes in ASP.NET MVC forms?
Anywho, lo tengo trabajando con la ayuda de ese hilo y la respuesta de BuildStarted a continuación. El siguiente código hizo el truco.
var additionalItems = form.AllKeys
.Where(k => form[k].Contains("true") && k.StartsWith("addItem"))
.Select(k => k.Substring(7));
Gracias por esa información. Normalmente solo uso el encuadernador de modelo incorporado y nunca me fijé en los detalles de lo que se imprime en el html con respecto a las casillas de verificación. – Buildstarted