MVC3破坏redirecttoaction的会话

时间:2012-01-25 14:14:21

标签: asp.net-mvc-3 session

我在MVC3应用程序中遇到会话问题。在一个控制器中,我收到一个post请求,然后在重定向到controller get方法之前将值添加到session。

问题是,在GET请求中,即使在POST请求中设置了会话值,会话值也会返回null。

[HttpPost]
public ActionResult findPerson(PersonSearch searchDetails)
{
    Session["FindPersons"] = searchDetails;
    return RedirectToAction("findperson");
}


[HttpGet]
public ActionResult findperson()
{
    PersonSearch searchDetails = (PersonSearch)Session["FindPersons"];

2 个答案:

答案 0 :(得分:5)

解决方案:

一些疯子在web.config中命名会话状态cookie名称,并且身份验证表单命名相同。

<sessionState timeout="20" cookieName="Spacer" />

<forms loginUrl="/spacer/login" name="Spacer" timeout="2200" />

显然,它所产生的效果是试图将会话和cookie存储在同样的东西中。我很惊讶这只是没有爆炸。

感谢你的帮助@dknaack,如果你没有把我指向正确的方向,我不会这么快就发现它。

答案 1 :(得分:1)

我尝试了你的代码并且没有遇到这个问题。所以我看了ASP.NET论坛。

RedirectToAction在IIS中删除会话

  

我刚遇到这个问题。它与重定向到操作本身无关,而是应用程序池。为我修复的是删除网站在IIS中运行的应用程序池并重新创建它。现在工作正常。的 Source