将IGrouping <string,model =“”>列表重定向到同一控制器中的另一个操作

时间:2017-10-11 08:14:05

标签: asp.net-mvc listview razor controller igrouping

return RedirectToAction("ActionName", new { lst = finalData });
[HttpGet]
 Public ActionResult AcionName(IGrouping<string, ModelName> lst)
 {
  return View("ActionName", lst);
 }

我使用此代码将我的列表重定向到另一个操作,但这不起作用。

1 个答案:

答案 0 :(得分:0)

您可以将finalData分配给SessionTempData变量。

TempData["FinalData "] = finalData;
return RedirectToAction("ActionName");

From this answer:“TempData允许您存储为重定向而存活的数据。在内部,它使用会话,只是在重定向后,数据被自动驱逐”

然后在您的GET行动方法

Public ActionResult AcionName()
{
    var finalData = TempData["FinalData"] as IGrouping<string, ModelName>;
    return View("ActionName", finalData);
}

问题是,如果您在重定向后刷新,那么finalData将为空。因此,在这种情况下,您使用Session["FinalData"]或再次从Get方法中获取数据库中的数据。您可以通过我已经链接的答案来解决使用TempData的缺点。