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

이 코드를 사용하여 내 목록을 다른 작업으로 리디렉션하지만 작동하지 않습니다.리디렉션 IGrouping <string, model> 같은 컨트롤러에서 다른 작업에 나열

+0

안녕하세요! 최소한의 완전하고 검증 가능한 코드 예제를 사용할 수 있습니까? https://stackoverflow.com/help/mcve – UrbanEsc

+1

'RedirectToAction()'을 사용하여 복잡한 객체를 전달할 수 없습니다. 데이터를 저장 한 다음 해당 ID를 GET 메서드에 전달하고 GET 메서드에서 다시 가져옵니다. –

답변

0

finalDataSession 또는 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는 null이 될 것입니다. 따라서이 경우 Session["FinalData"]을 사용하거나 Get 메서드에서 데이터베이스의 데이터를 다시 가져옵니다. TempData을 사용할 때의 단점으로 인해 내가 연계 해 준 답변을 살펴볼 수 있습니다.

+0

감사합니다. –