Asp.net mvc 3 如何将列表中的IEnumerable发布到控制器

Asp.net mvc 3 如何将列表中的IEnumerable发布到控制器,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我有一个MVC3应用程序,其型号如下 public class Class1 { public List<Class2> Class2Data { get; set; } } public class Class2 { public int Id { get; set; } public IEnumerable<Class3> Class3Data { get; set; } } public class Class3 { public

我有一个MVC3应用程序,其型号如下

public class Class1 
{
    public List<Class2> Class2Data { get; set; }
}

public class Class2
{
   public int Id { get; set; }
   public IEnumerable<Class3> Class3Data { get; set; }

}

public class Class3
{
    public int Id { get set; }
    public bool Selected { get; set; }
}
公共类1
{
公共列表Class2Data{get;set;}
}
公共课2
{
公共int Id{get;set;}
公共IEnumerable Class3Data{get;set;}
}
公共班级3
{
公共int Id{get set;}
已选择公共布尔值{get;set;}
}
在我的剃须刀模型中

for (var i = 0; i < Model.Class2Data.Count();i++)
{
   @Html.HiddenFor(c => c.Class2Data[i].Id)

    foreach (var n in Model.Class2Data[i].Class3Data.ToList())
    {
          @Html.CheckBoxFor(x=> n.Selected);
          @Html.HiddenFor(x=> n.Id);
    }
}
for(var i=0;ic.Class2Data[i].Id)
foreach(Model.Class2Data[i].Class3Data.ToList()中的变量n)
{
@CheckBoxFor(x=>n.Selected);
@Html.HiddenFor(x=>n.Id);
}
}

但是,当我将此信息发布到我的控制器时,当我勾选复选框时,Class3Data计数始终为0。有什么想法吗?谢谢

通过将IEnumerable更改为List解决了未正确绑定的问题

通过将IEnumerable更改为List解决了可能的重复问题,因为未正确绑定