ASP.Net MVC 3 检索复选框列表值



我正在开发一个 ASP.Net 的MVC 3 Web应用程序,在控制器的HttpPost方法中检索选定的复选框值时遇到困难。希望有人能帮忙。

我有 2 个视图模型

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; }
}

以及我用作编辑器模板的部分视图

@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 控制器中,我尝试获取所选复选框的值,但模式。专业列表始终为空

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

有谁知道为什么是模型。专业列表总是为空?

任何帮助都非常感谢。

谢谢。

给复选框相同的名称,如下所示:

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

它将发布一个数组

相关内容

  • 没有找到相关文章

最新更新