ASP.MVC RedirectToAction убивает данные Session - PullRequest
0 голосов
/ 01 ноября 2011

В ASP MVC3 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");
}

Если я возвращаю View вместо перенаправления к действию, в сеансе сохраняются данные, которые я там храню.

RedirectToAction важен, поэтому я оставляю пользователя на странице GET, а неPOST-страницу, чтобы избежать этого раздражающего диалога репоста, который появляется.

РЕДАКТИРОВАТЬ:

Это было в верхней части моего контроллера [SessionState (SessionStateBehavior.ReadOnly)], когдаЯ удаляю это, он ведет себя должным образом.

1 Ответ

0 голосов
/ 08 декабря 2011

Это было в верхней части моего контроллера [SessionState (SessionStateBehavior.ReadOnly)], когда я удаляю это, он ведет себя правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...