Dynamische Liste von Kontrollkästchen und Modellbindung

Ich versuche, eine Ansicht mit einer Liste von Kontrollkästchen zu erstellen, die dynamisch aus einer Datenbank erstellt wird, und rufe dann die Liste der ausgewählten Kontrollkästchen ab, wenn das Formular zurückgesendet wird.

Mein EF-Modell enthält eine Klasse:

public class ItemIWouldLikeACheckboxFor {
    public int Id { get; set; }
    public string Description { get; set; }
}

Ich habe ein Ansichtsmodell, das eine Liste dieser Elemente enthält:

public class PageViewModel {
    // various other properties
    public List<ItemIWouldLikeACheckboxFor> checkboxList { get; set; }
}

Meine Steuerung erhält Methode:

public ActionResult Create() {
    var viewModel = new PageViewModel();
    viewModel.checkboxList = db.ItemIWouldLikeACheckboxFors.ToList();
    return View(viewModel);
}

Meine Sicht

<% using (Html.BeginForm()) { %>
    <%-- other stuff here... %>

    <% foreach (var item in checkboxList) { %>
        <%: Html.CheckBox( <!-- what exactly ?????? -->) %>
    <% } %>

    <%-- other stuff here...%>
    <input type="submit" />
<% } %>

Meine Controller-Post-Methode:

[HttpPost]
public ActionResult Create(PageViewModel viewModel) {
    // do stuff with other fields

    // I would like to do something like:
    foreach (var item in selectedCheckBoxes) {
        // do stuff
    }
}

Ich kann es scheinbar nicht zum Laufen bringen. Meine grundlegenden Fragen sind als Kommentare in den Code-Schnipsel gemischt, aber um es noch einmal zusammenzufassen:

Ist mein Ansichtsmodell in Ordnung? (Muss ich irgendetwas hinzufügen, um die ausgewählten zu erfassen, anstatt nur die anzuzeigende Liste?)Was genau sollte ich in die Ansicht einfügen, um jedes Kontrollkästchen zu rendern?Wie greife ich nach dem Post auf die ausgewählten Kontrollkästchen im Controller zu?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage