Asp.net 无法检索HttpContext.Current.Session状态中的值
我有一个MVC4网络应用程序。我在Global.asax.cs文件中的mvcapapplication类的session_Start中定义的会话中保存了一个值 我想从控制器中检索该值。但它抛出了一个错误Asp.net 无法检索HttpContext.Current.Session状态中的值,asp.net,asp.net-mvc-4,Asp.net,Asp.net Mvc 4,我有一个MVC4网络应用程序。我在Global.asax.cs文件中的mvcapapplication类的session_Start中定义的会话中保存了一个值 我想从控制器中检索该值。但它抛出了一个错误 protected void Session_Start(Object sender, EventArgs e) { int temp = 0; HttpContext.Current.Session.Add("_SessionCo
protected void Session_Start(Object sender, EventArgs e)
{
int temp = 0;
HttpContext.Current.Session.Add("_SessionCompany", temp);
Debug.WriteLine("session started");
}
在控制器的构造函数中:
public LocationController()
{
if (HttpContext.Session == null)
Debug.WriteLine("session is null");
//this.HttpContext.Session["_SessionCompany"] = (int)this.Session["_SessionCompany"] + 1;
//Debug.WriteLine("LocationController instantiated - " + (int)this.Session["_SessionCompany"]);
}
错误在HttpContext上:
System.NullReferenceException: Object reference not set to an instance of an object.
HttpContext似乎是空对象
我哪里做错了
谢谢 您试图访问的HttpContext对象位于ASP.NET MVC的基本控制器类中,该类未在控制器实例化时设置,而是在稍后的日期注入
如果希望在构造函数中访问HTTPContext对象,则需要使用推荐的解决方案通过IoC容器注入它,或者可以直接访问上下文,如下所示:
using SystemWebHttpContext = System.Web.HttpContext;
...
public LocationController()
{
var session = SystemWebHttpContext.Current.Session;
}
可能重复的