Ho un modulo che contiene un intero gruppo di checkbox e alcuni altri tipi di controllo. Ho bisogno di recuperare i nomi di ogni casella selezionata.Come ottenere tutte le caselle selezionate da una FormCollection
Qual è il modo migliore per farlo? Posso farlo con una query di linq forse?
Quindi, in pseudocodice, sto cercando di fare qualcosa di simile:
var names = formCollection
.Where(c => c is Checkbox && c.Checked)
.Select(c => c.Name);
Aggiornamento sembra che il modo in cui MVC sottopone caselle di controllo è diverso da come una forma normale si sarebbe comportato, come un campo nascosto è anche reso. Ho trovato i dettagli qui: How to handle checkboxes in ASP.NET MVC forms?
Chiunque abbia funzionato con l'aiuto di quel thread e la risposta di BuildStarted di seguito. Il seguente codice ha fatto il trucco.
var additionalItems = form.AllKeys
.Where(k => form[k].Contains("true") && k.StartsWith("addItem"))
.Select(k => k.Substring(7));
Grazie per queste informazioni. Normalmente utilizzo solo il binding del modello incorporato e non guardo mai nei dettagli ciò che viene prodotto in html per quanto riguarda le checkbox. – Buildstarted