2017-10-11 29 views
0
return RedirectToAction("ActionName", new { lst = finalData }); 
[HttpGet] 
Public ActionResult AcionName(IGrouping<string, ModelName> lst) 
{ 
    return View("ActionName", lst); 
} 

我使用此代码将列表重定向到另一个操作,但这不起作用。重定向IGrouping <string,model>列表到同一控制器中的另一个动作

+0

欢迎来到SO!我们可以有一个最小的,完整的和可验证的代码示例吗? https://stackoverflow.com/help/mcve – UrbanEsc

+1

您不能像使用'RedirectToAction()'那样传递复杂对象。保存数据,然后将其ID传递给GET方法并在GET方法中再次获取 –

回答

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的缺点的答案。

+0

感谢它的工作 –

相关问题