【问题标题】:Assigning value to session, giving object reference not set to an instance of an object exception in MVC为会话赋值,将对象引用未设置为 MVC 中对象异常的实例
【发布时间】:2014-06-30 23:59:22
【问题描述】:

问题陈述:

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

我有两个控制器

  1. 主控制器
  2. 辅助控制器

当我在主控制器中为会话分配值时,它工作正常。但如果我在辅助控制器的 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.**
      }

    }

【问题讨论】:

    标签: c# .net asp.net-mvc session controller


    【解决方案1】:

    这是因为 Session 变量仅在Standard ASP.NET MVCController(主控制器)中可用。为了访问辅助控制器中的会话变量,您应该使用

    System.Web.HttpContext.Current.Session["LogID"] = 10;
    

    【讨论】:

    • 感谢您的建议。
    • 你好。我有同样的问题。我尝试引用 System.Web,但它仍然给了我对象引用未设置为对象实例的错误。请指教。
    • 我遇到了同样的问题!!
    • 同样的事情发生在我身上,我在 Areas 文件夹中使用控制器,谢谢!
    • 我遇到了同样的问题,这个解决方案对我有用
    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多