0
ASP MVC3에서 RedirectToAction이 세션의 데이터를 죽입니다 ... 왜?ASP.MVC RedirectToAction이 데이터를 죽입니다. 세션
이 코드를 고려하십시오.
[HttpGet]
public ActionResult RequestTestExtract()
{
return View(new ExtractRequestViewModel());
}
[HttpPost]
public ActionResult RequestTestExtract(ExtractRequestViewModel viewModel)
{
var currentExtracts = (Session["Extracts"] as Dictionary<string, bool>) ?? new Dictionary<string, bool>();
currentExtracts.Add(viewModel.fileName, false);
Session["Extracts"] = currentExtracts;
// typing
// ?Session["Extracts"]
// in immediate window before RedirectToAction shows a value
// typing it after does not
return RedirectToAction("RequestTestExtract");
}
조치로 리디렉션하지 않고보기를 리턴하면 세션에는 여전히 거기에 저장된 데이터가 있습니다.
RedirectToAction이 중요하므로 POST 페이지가 아닌 GET 페이지에 사용자를 남겨두면 성가신 재 게시 대화 상자가 표시되지 않습니다.
편집 :
이 내가이를 삭제할 때 제대로 작동 내 컨트롤러 [sessionState의 (SessionStateBehavior.ReadOnly)]가 상단에 있었다.
당신은'TempData'를 사용하려 했습니까? –
세션을 통해이를 사용하는 이점은 무엇입니까 – Peter
제가 정확하게 기억한다면 TemData는 여전히 세션 기반입니다. –