我有部分看法:
@foreach (var checkbox in Model.TimeLimit)
{
<div class="editor-label">
@Html.Label(checkbox.Name)
@Html.Hidden(checkbox.Id)
@Html.CheckBoxFor(c=>checkbox.IsChecked)
</div>
}
我有一个ParentViewModel包含:
public IEnumerable<URLTimeLimitViewModel> TimeLimit { get; set; }
和URlTimelimitViewmodel包含:
public string Name { get; set; }
public int Id { get; set; }
public bool IsChecked { get; set; }
当我调用提交按钮时,ParentViewModel中的Timelimit返回null,为什么?
最佳答案
您需要更改循环-模型绑定器无法找出将发布值绑定到以下内容的方法:
@for (var i = 0; i < Model.TimeLimit.Count; i++)
{
<div class="editor-label">
@Html.Label(Model.TimeLimit[i].Name)
@Html.Hidden(Model.TimeLimit[i].Id)
@Html.CheckBoxFor(c=>Model.TimeLimit[i].IsChecked)
</div>
}
您还需要将
TimeLimit
属性声明为IEnumerable之外的其他内容,我建议您使用通用列表(LINQs ToList方法非常方便!):public List<URlTimelimitViewModel> TimeLimit { get; set; }