Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为会话赋值,在MVC中将对象引用未设置为对象异常的实例_C#_.net_Asp.net Mvc_Session_Controller - Fatal编程技术网

C# 为会话赋值,在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();

问题陈述:

我正在尝试为MVC控制器中的会话对象分配一个值,因为对象引用未设置为对象的实例,所以出现异常。

我有两个控制器

  • 主控制器
  • 第二控制器
  • 当我在主控制器中为会话赋值时,它工作正常。但如果我在辅助控制器中的Test()方法中赋值相同,则会产生错误

    我做错了什么

    主控制器:

     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,但它仍然给我一个错误,即对象引用未设置为对象的实例。请告诉我。我也有同样的问题!!同样的事情也发生在我身上,我在区域文件夹内使用控制器,谢谢!我也有同样的问题,这个解决方案对我有效