C# 对象引用未设置为对象的实例:调用控制器B';具有来自控制器A的会话的方法

C# 对象引用未设置为对象的实例:调用控制器B';具有来自控制器A的会话的方法,c#,asp.net,.net,asp.net-mvc,session,C#,Asp.net,.net,Asp.net Mvc,Session,我注意到,如果我在控制器的方法中有一个会话变量,比如控制器B,我从控制器a调用它。我得到以下错误: System.NullReferenceException:“对象引用未设置为对象的实例。” 控制器A: public ActionResult Index() { Session["name"] = "sam"; return View(); } public ActionResult About() { ViewBag.Message = "Your applicati

我注意到,如果我在控制器的方法中有一个会话变量,比如控制器B,我从控制器a调用它。我得到以下错误:

System.NullReferenceException:“对象引用未设置为对象的实例。”

控制器A:

public ActionResult Index()
{
   Session["name"] = "sam";
   return View();
}

public ActionResult About()
{
     ViewBag.Message = "Your application description page.";
     DefaultController d = new DefaultController();
     d.MethodB();
     return View();
}
 public void MethodB()
 {
   string name = Session["name"].ToString();
 }
控制器B:

public ActionResult Index()
{
   Session["name"] = "sam";
   return View();
}

public ActionResult About()
{
     ViewBag.Message = "Your application description page.";
     DefaultController d = new DefaultController();
     d.MethodB();
     return View();
}
 public void MethodB()
 {
   string name = Session["name"].ToString();
 }
步骤:

public ActionResult Index()
{
   Session["name"] = "sam";
   return View();
}

public ActionResult About()
{
     ViewBag.Message = "Your application description page.";
     DefaultController d = new DefaultController();
     d.MethodB();
     return View();
}
 public void MethodB()
 {
   string name = Session["name"].ToString();
 }
  • 调用控制器A的索引()
  • 调用控制器A的About()
  • 虽然,我可能永远不会这样做,但出于好奇,我想了解这种行为