按下按钮后,Asp.NET MVC会话计数回到0

时间:2016-01-11 15:22:23

标签: asp.net .net asp.net-mvc-4 session-state

我在ASP.NET MVC4中使用Sessions,我在会话中存储了一些数据,一切正常,直到我点击一个按钮,应用程序中的所有会话都变为空。

<button id="btnExport">Export To Excel</button>

$('#btnExport').click(function () {
        window.location.href = "/Home/DownloadFile?Id=2";
});

只要我在控制器中点击Action Method,应用程序中的所有会话都为空。我尝试过使用Ajax GET请求而不是window.location.href。

这是我的web.config设置

<sessionState cookieless="false" mode="InProc" timeout="60" />

在Global.asax中我有这个

protected void Session_Start(Object sender, EventArgs e)
{
    Session["init"] = 0;
}

我正在检查计数

var sessionCount = Session.Count;

还使用visual studio观察窗来监视我的会话对象。

我正在使用Windows身份验证。

你们可以请求帮助,为什么按钮请求会删除会话?

由于

1 个答案:

答案 0 :(得分:0)

我认为你误解了这个概念。 Session_start()将始终被解雇,这会导致您的会话值重新初始化为0

解决方法 :创建一个基本控制器并将其继承到您创建的每个控制器中。覆盖基本控制器中的OnActionExecuting()函数,然后操纵您的会话。此外,MVC中的会话驻留在当前的Controller上下文中,因此广泛使用它