我正在开发一个 ASP.Net MVC 3 Web 应用程序,并且在我的控制器的 HttpPost 方法中检索选定的复选框值时遇到了困难。希望有人可以提供帮助。
我有 2 个 ViewModel
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; }
}
以及我用作 EditorTemplate 的部分视图
@model Locum.UI.ViewModels.ViewModelCheckBox
@Html.HiddenFor(x => x.Id)
@Html.CheckBoxFor(x => x.Checked)
@Html.LabelFor(x => x.Name, Model.Name)<br />
在我的视图中,我在两个标题下创建复选框,医学和外科
<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)
}
}
然后在我的 HttpPost 控制器中,我尝试获取所选复选框的值,但 mode.SpecialtyList 始终为 Null
[HttpPost]
public ActionResult AssignSubSpecialties(ViewModelShiftSubSpecialties model)
{
foreach (var item in model.SpecialtyList)
{
if (item.Checked)
{
//do some logic
}
}
return View();
}
有谁知道为什么 model.SpecialtyList 总是空的?
任何帮助深表感谢。
谢谢。