/ / ASP.Net MVC 3 CheckBoxList-Werte abrufen - asp.net-mvc-3, Ansichtsmodell, Kontrollkästchen, Kontrollkästchenliste, Editorfür

ASP.Net MVC 3 Abrufen von CheckBoxList-Werten - asp.net-mvc-3, Viewmodel, Checkbox, Checkboxliste, Editor für

Ich entwickle eine ASP.Net MVC 3-Webanwendung und habe Probleme beim Abrufen der ausgewählten Kontrollkästchenwerte innerhalb der HttpPost-Methode in meinem Controller. Hoffentlich kann jemand helfen.

Ich habe 2 ViewModels

public class ViewModelShiftSubSpecialties
{
public IEnumerable<ViewModelCheckBox> SpecialtyList { get; set; }
}

public class ViewModelCheckBox
{
public string Id { get; set; }
public string Name { get; set; }
public bool Checked { get; set; }
public string Specialty { get; set; }
}

Und eine Teilansicht verwende ich als EditorTemplate

@model Locum.UI.ViewModels.ViewModelCheckBox

@Html.HiddenFor(x => x.Id)
@Html.CheckBoxFor(x => x.Checked)
@Html.LabelFor(x => x.Name, Model.Name)<br />

In meiner Ansicht erstelle ich die Kontrollkästchen unter zwei Überschriften, Medizin und Chirurgie

<h3>Medicine</h3>
foreach (var sub in Model.SpecialtyList)
{
if (sub.Specialty.Equals("Medicine"))
{
@Html.EditorFor(m => sub)
}
}
<h3>Surgery</h3>

foreach (var sub in Model.SpecialtyList)
{
if (sub.Specialty.Equals("Surgery"))
{
@Html.EditorFor(m => sub)
}

}

Und dann versuche ich in meinem HttpPost-Controller, die Werte der ausgewählten Kontrollkästchen abzurufen, aber mode.SpecialtyList ist immer Null

 [HttpPost]
public ActionResult AssignSubSpecialties(ViewModelShiftSubSpecialties model)
{
foreach (var item in model.SpecialtyList)
{
if (item.Checked)
{
//do some logic
}
}

return View();
}

Weiß jemand, warum model.SpecialtyList immer Null ist?

Jede Hilfe wird sehr geschätzt.

Vielen Dank.

Antworten:

3 für die Antwort № 1

Gib Checkboxen die gleichen Namen wie:

<input type="checkbox" name="ViewModelShiftSubSpecialties.SpecialtyList" .../>

und es wird ein Array posten