Ich habe ein View-Modell mit einem Formular, das eine Reihe von Kontrollkästchen enthält. Ich benötige, dass die Kontrollkästchen beim Binden in der Post-Back-Methode meines Controllers auf ein Array abgebildet werden.
Hier ist das View-Modell.
@model TMDM.Models.TestSeriesCreateViewModel
@{
ViewBag.Title = "Create";
}
Eine Testreihe erstellen
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
@Html.LabelFor(model => model.Title)
@Html.EditorFor(model => model.Title)
@Html.ValidationMessageFor(model => model.Title)
Welche Testkollektionen sind in dieser Testreihe?
@{
var i = 0;
foreach (var testCollection in Model.TestCollections)
{
@testCollection.Title
i++;
}
}
@Html.ActionLink("Abbrechen", "Index", "TestSeries", null, new { @class = "medium black awesome" })
Das Formular wird einwandfrei gerendert, ich habe die Quelle überprüft und jedes Ausgabekontrollkästchen hat eine unterschiedliche Nummer für ihre ID- und Name- Felder.
//usw...
Hier ist das View-Modell.
public class TestSeriesModel
{
public int Id { get; set; }
public string Title { get; set; }
}
public class TestSeriesCreateViewModel : TestSeriesModel
{
public List TestCollections { get; set; }
public int[] ChosenTestCollectionIds { get; set; }
}
Das Problem, das ich habe, ist, dass beim Post-Back des Formulars das ChosenTestCollectionIds-Array null zurückkommt. Was mache ich hier falsch?
ANTWORT
Ich habe herausgefunden, wie es geht: