从视图传递到控制器的List <object>变为空List <object>

时间:2017-12-06 18:53:47

标签: c# asp.net

我正在建立一个像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

如果我没有澄清重要的事情,请告诉我,我不知道为什么这不起作用。

1 个答案:

答案 0 :(得分:1)

您需要提交/发布以便MVC执行类似的复杂模型绑定,ActionLink会将数据作为查询字符串附加,因此它只会在控制器端绑定多个单独的命名/类型字段。您的控制器已正确设置为帖子,但actionlink不是帖子。

作弊并创建一个迷你隐藏表单以提交该数据,设置ajax帖子或将其作为JSON字符串发送。有很多方法可以做到这一点。参见:

https://stackoverflow.com/a/26528113/466245