我在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"];
答案 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 强>