Ich habe ein Formular, das eine ganze Reihe von Kontrollkästchen und einige andere Arten der Kontrolle enthält. Ich muss die Namen jedes ausgewählten Kontrollkästchens abrufen.Abrufen aller ausgewählten Kontrollkästchen aus einer FormCollection
Was ist der beste Weg, dies zu tun? Kann ich es vielleicht mit einer linq-Abfrage machen?
So in Pseudo-Code, suche ich so etwas wie dies zu tun:
var names = formCollection
.Where(c => c is Checkbox && c.Checked)
.Select(c => c.Name);
aktualisieren Es scheint, die Art und Weise MVC Kontrollkästchen einreicht unterscheidet sich wie eine normale Form verhalten würde, wie ein verstecktes Feld ist auch gerendert. Ich fand die Details hier: How to handle checkboxes in ASP.NET MVC forms?
Anywho, ich habe es funktioniert mit Hilfe dieses Threads und die Antwort von BuildStarted unten. Der folgende Code hat den Trick gemacht.
var additionalItems = form.AllKeys
.Where(k => form[k].Contains("true") && k.StartsWith("addItem"))
.Select(k => k.Substring(7));
Danke für diese Info. Ich benutze normalerweise nur die eingebaute Modellbindung und habe nie wirklich ins Detail geschaut, was im Hinblick auf die Checkboxen ausgegeben wird. – Buildstarted