【发布时间】:2021-09-16 20:10:53
【问题描述】:
我正在尝试将 IEnumerable 模型参数从一种方法传递到另一种方法,但是当我调试代码时,即使方法签名相同,参数也不会被传递。
我尝试过使用和不使用绑定前缀
方法一:
[HttpPost]
public ActionResult Create_Filter([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")]IEnumerable<CourseFilterViewModel> courseFilterVM)
{
return RedirectToAction("Course", "Filter", courseFilterVM);
}
方法二:
public ActionResult Course([Bind(Prefix = "models")]IEnumerable<CourseFilterViewModel> courseFilterVM)
{
return View(courseFilterVM);
}
我希望传递整个模型,但我得到的是一个空值。
【问题讨论】:
-
我之前可以传递数据,但是这种特定类型的东西让我很受挫
-
您在这里所做的基本上是由于重定向将复杂对象发送回浏览器。所以你告诉客户端“嘿,在这里寻找你需要的数据”但是客户端不能以这种方式将 IEnumerable 传递回服务器,如果你想这样做,你需要将数据存储在某处服务器,然后在下一个方法中再次将其拾取。或者,查看它您只是在过滤数据,因此将其传递给要过滤的无控制器类并返回结果,这样您就不需要重定向,只需返回带有新过滤数据的视图。
标签: asp.net-mvc