碰到这么个情况,在一个控制器保存session,在另一个控制器获取不到值。代码如下:
public ActionResult SetCode()
{
string id = Session.SessionID;
Session["mycode"] = "abc";
return View();
}
public ActionResult GetCode()
{
string id = Session.SessionID;
string code= Session["mycode"].ToString();
Response.Write(code);
return View();
}
访问GetCode时,报错:“未将对象引用设置到对象的实例”!SessionID都一样,竟然获取不到值!经过小小折腾,终于找到解决方法。
解决方法有两种:
1.确保进行session保存动作的控制器有一个对应的视图页面。
2.修改进行session保存动作的控制器的返回值类型,例如改为没有返回值:
public void SetCode()
{
string id = Session.SessionID;
Session["mycode"] = "abc";
}
完毕!