2014-05-13 18 views
8

komunikat Problem:Przypisywanie wartości do sesji, dając Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu wyjątku w MVC

próbuję przypisać wartość do obiektu sesji w MVC Controller to daje jako wyjątek Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu.

Mam dwa kontrolery

  1. MainController
  2. SecondaryController

Kiedy przypisać wartości do sesji w główny sterownik działa on fine.but jeśli przypisać ta sama wartość w metodzie Test() w kontrolerze pomocniczym powoduje błąd.

Co robię źle tutaj?

Główny Kontroler:

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); 

      } 
    } 

Secondary Controller:

public class SecondaryController: Controller 
    { 
    public void Test() 
    { 
     Session["LogID"] = 10; 
     // Giving Error as **Object reference not set to an instance of an object.** 
     } 

    } 

Odpowiedz

10

To dlatego, że zmienna sesja jest dostępna tylko w Standard ASP.NET MVC Controller (kontroler główny). Aby uzyskać dostęp do zmiennych sesji w kontrolerze pomocniczym, należy użyć

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

Dziękujemy za sugestie. –

+0

Witam. Mam ten sam problem. Próbowałem odwoływać się do System.Web, ale nadal dawał mi błąd, że odwołanie do tego obiektu nie jest ustawione na instancję obiektu. Proszę doradź. – HelpASisterOut

+0

JESTEM TEGO SAMEGO PROBLEMU !! –