重定向IGrouping 列表到同一控制器中的另一个动作
问题描述:
return RedirectToAction("ActionName", new { lst = finalData });
[HttpGet]
Public ActionResult AcionName(IGrouping<string, ModelName> lst)
{
return View("ActionName", lst);
}
我使用此代码将列表重定向到另一个操作,但这不起作用。重定向IGrouping <string,model>列表到同一控制器中的另一个动作
答
您可以将finalData
分配给Session
或TempData
变量。
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
的缺点的答案。
+0
感谢它的工作 –
欢迎来到SO!我们可以有一个最小的,完整的和可验证的代码示例吗? https://stackoverflow.com/help/mcve – UrbanEsc
您不能像使用'RedirectToAction()'那样传递复杂对象。保存数据,然后将其ID传递给GET方法并在GET方法中再次获取 –