C# 为会话赋值,在MVC中将对象引用未设置为对象异常的实例
问题陈述: 我正在尝试为MVC控制器中的会话对象分配一个值,因为对象引用未设置为对象的实例,所以出现异常。 我有两个控制器C# 为会话赋值,在MVC中将对象引用未设置为对象异常的实例,c#,.net,asp.net-mvc,session,controller,C#,.net,Asp.net Mvc,Session,Controller,问题陈述: 我正在尝试为MVC控制器中的会话对象分配一个值,因为对象引用未设置为对象的实例,所以出现异常。 我有两个控制器 主控制器 第二控制器 当我在主控制器中为会话赋值时,它工作正常。但如果我在辅助控制器中的Test()方法中赋值相同,则会产生错误 我做错了什么 主控制器: public class MainController: Controller { SecondaryController secCont=new SecondaryController();
public class MainController: Controller
{
SecondaryController secCont=new SecondaryController();
public ActionResult Index(LoginModel loginModel)
{
if (ModelState.IsValid)
{
Session["LogID"] = 10;
//This is working fine.
//Instead of this i want call secCont.Test(); method where value for session assigned, it is giving error.
}
return View(loginModel);
}
}
public class SecondaryController: Controller
{
public void Test()
{
Session["LogID"] = 10;
// Giving Error as **Object reference not set to an instance of an object.**
}
}
辅助控制器:
public class MainController: Controller
{
SecondaryController secCont=new SecondaryController();
public ActionResult Index(LoginModel loginModel)
{
if (ModelState.IsValid)
{
Session["LogID"] = 10;
//This is working fine.
//Instead of this i want call secCont.Test(); method where value for session assigned, it is giving error.
}
return View(loginModel);
}
}
public class SecondaryController: Controller
{
public void Test()
{
Session["LogID"] = 10;
// Giving Error as **Object reference not set to an instance of an object.**
}
}
这是因为会话变量仅在
标准ASP.NET MVC
控制器(主控制器)中可用。为了访问辅助控制器中的会话变量,您应该使用
System.Web.HttpContext.Current.Session["LogID"] = 10;
谢谢你的建议。你好。我也有同样的问题。我尝试引用System.Web,但它仍然给我一个错误,即对象引用未设置为对象的实例。请告诉我。我也有同样的问题!!同样的事情也发生在我身上,我在区域文件夹内使用控制器,谢谢!我也有同样的问题,这个解决方案对我有效