我正在建立一个像ASP.Net网站这样的IMDb,我想把船员名单传递给我可以编辑它们的不同视图。但是当List从Film视图传递到FilmController中的FilmCastEdit动作时,List计数为0.我这样做错了吗?另一种选择是在调用FIlmCastEdit时运行一个新的SQL查询,但看到我需要的人员列表已经存在,我认为这样会更好。
电影观点
@if (IngelogdeGebruiker != null && IngelogdeGebruiker.TypeOfUser == UserTypeEnum.Moderator)
{
@Html.ActionLink("Edit", "FilmCastEdit", "Film", new { castList = Model.Crew }, null)
}
电影控制器
public ActionResult FilmCastEdit(List<Person> castList)
{
return View(castList);
}
将胶片视图调试视图到胶片控制器
https://gyazo.com/eb5511ab4154256505aa87403f79f485
在胶片视图中,Model.Crew计数为5,如您所见
https://gyazo.com/d53df971450865f73c6662da08cfc8f0
但是此处的castList计数为0
如果我没有澄清重要的事情,请告诉我,我不知道为什么这不起作用。
答案 0 :(得分:1)
您需要提交/发布以便MVC执行类似的复杂模型绑定,ActionLink会将数据作为查询字符串附加,因此它只会在控制器端绑定多个单独的命名/类型字段。您的控制器已正确设置为帖子,但actionlink不是帖子。
作弊并创建一个迷你隐藏表单以提交该数据,设置ajax帖子或将其作为JSON字符串发送。有很多方法可以做到这一点。参见: