Asp.net mvc 3 提交时未通过MVC3 Razor复选框值

Asp.net mvc 3 提交时未通过MVC3 Razor复选框值,asp.net-mvc-3,razor,checkbox,Asp.net Mvc 3,Razor,Checkbox,我有一个表单,列表中有几个复选框项。 我有一个编辑来编辑这个列表。它们在屏幕上显示得很好。 但提交时,选中的项目不会在模型中提交 型号: public class ContactUsersModel : BaseModel { public IList<FilterCheckModel> PreviousVisitors { get; set; } } public class FilterCheckModel : BaseModel { public strin

我有一个表单,列表中有几个复选框项。 我有一个编辑来编辑这个列表。它们在屏幕上显示得很好。 但提交时,选中的项目不会在模型中提交

型号:

public class ContactUsersModel : BaseModel
{
     public IList<FilterCheckModel> PreviousVisitors { get; set; }
}

public class FilterCheckModel : BaseModel
{
    public string Name { get; set; }
    public string Value { get; set; }
    public bool IsChecked { get; set; }        
}
公共类ContactUsersModel:BaseModel
{
公共IList先前访问者{get;set;}
}
公共类筛选器检查模型:BaseModel
{
公共字符串名称{get;set;}
公共字符串值{get;set;}
已检查公共布尔值{get;set;}
}
控制器:

IList<FilterCheckModel> prevVisitList = new List<FilterCheckModel>();
prevVisitList.Insert(0, new FilterCheckModel() { Name = "All previous visitors", Value = "0" });
prevVisitList.Insert(1, new FilterCheckModel() { Name = "Not visited in last month", Value = "1" });
prevVisitList.Insert(2, new FilterCheckModel() { Name = "Not visited for 1-3 months", Value = "2" });
prevVisitList.Insert(3, new FilterCheckModel() { Name = "Not visited for 3-6 months", Value = "3" });
prevVisitList.Insert(4, new FilterCheckModel() { Name = "Not visited for over 6 months", Value = "4" });
model.PreviousVisitors = prevVisitList;
IList prevVisitList=new List();
插入(0,新过滤器检查模型(){Name=“所有以前的访问者”,Value=“0”});
Insert(1,新过滤器检查模型(){Name=“上个月未访问”,Value=“1”});
插入(2,新过滤器检查模型(){Name=“1-3个月内未访问”,Value=“2”});
插入(3,新过滤器检查模型(){Name=“3-6个月内未访问”,Value=“3”});
插入(4,新过滤器检查模型(){Name=“超过6个月未访问”,Value=“4”});
model.PreviousVisitors=PreviousVisitList;
html:


过往访客:
@对于(int i=1;imodel.PreviousVisitors[i],“FilterCheck”,new{Index=i+1})
}
编辑:

<tr>
    <td>
        @Model.Name
    </td>
    <td>
        @Html.CheckBoxFor(x => x.IsChecked)
        @Html.HiddenFor(x => x.Value)
    </td>
</tr>

@型号.名称
@Html.CheckBoxFor(x=>x.IsChecked)
@Html.HiddenFor(x=>x.Value)
找到了

原因是,在我的循环中,我是从i=1开始的。 出于某种原因,这导致了一个问题。 索引需要从表单0开始

  @for (int i = 1; i < Model.PreviousVisitors.Count; i++)
@for(int i=1;i
所以我把这个改成了

  @for (int i = 0; i < Model.PreviousVisitors.Count; i++)
@for(int i=0;i
成功了

  @for (int i = 0; i < Model.PreviousVisitors.Count; i++)