0
类CreateActivityViewModel
将被传递到视图。不能提交二维`列表`从视图到控制器
public class CreateActivityViewModel
{
public List<List<int>> SelectedDepartmentIds { get; set; }
...
}
在视图中,使用这些代码来生成的html代码:
<div class="form-group">
@Html.Label("报名范围", htmlAttributes: new {@class = "col-xs-12"})
<div>
<button id="repeat" type="button">增加单位范围</button>
</div>
@for (var i = 0; i < Model.MaxDepartmentLevel; i++)
{
<div class="col-xs-6">
@if (i == 0)
{
@Html.Label((i + 1) + "级单位", htmlAttributes: new {@class = "control-label col-md-2"})
@Html.DropDownListFor(x => x.SelectedDepartmentIds[0][i], Model.Departments,
"请选择单位", new {@class = "form-control department"})
}
else
{
@Html.Label((1 + i) + "级单位", htmlAttributes: new {@class = "control-label col-md-2"})
@Html.DropDownListFor(x => x.SelectedDepartmentIds[0][i], Enumerable.Empty<SelectListItem>(),
"所有单位", new {@class = "form-control department"})
}
</div>
}
</div>
这里x => x.SelectedDepartmentIds[0][i]
是两个渔政船List
不能被传递回服务器。调试时,createActivityViewModel.SelectedDepartmentIds=null
。但是,使用Chrome开发者工具,看看有什么会传送到服务器上,我看到SelectedDepartmentIds
不提交:
事实上,我已经试过几乎在其他地方同样的工作,我想唯一的区别是,成功的工作是通过一维List
,现在是二维。 ASP.NET不支持绑定二维List或什么?
你可以显示你的'创建'行动方法签名?你也可以向我们展示'Content-Type'请求标题? –
@DarinDimitrov谢谢!启发,我检查了'Create'action签名,发现我忘了在'[Bind(Include = ...)]'中添加该属性。 – guo
您使用视图模型,因此您绝对不应该有'[Bind]'属性 –