是否可以从创建它的不同控制器中检索Session变量?
我在我的帐户控制器
中创建了这个System.Web.HttpContext.Current.Session["Session"] = sessionGuid;
来自不同的控制器我正在尝试
if (System.Web.HttpContext.Current.Session["Session"] != null)
{
return Json(System.Web.HttpContext.Current.Session["Session"].ToString());
}
return null;
始终返回null
。
作为测试我将一些代码添加到我的Login控制器中,在那部分我确实从中获取了值
if (System.Web.HttpContext.Current.Session["Session"] != null)
{
test = System.Web.HttpContext.Current.Session["Session"].ToString();
}
else
{
test = "no";
}
我总是得到实际的结果,而不是" no"部分代码
答案 0 :(得分:0)
如果控制器在同一个网站/虚拟目录中然后是YES,但是如果你说你的会话是在另一个站点创建的,并且你试图在属于不同站点的控制器中访问它,那么你就不能。
答案 1 :(得分:0)
由于某种原因,它与我必须访问会话的方式不同,在另一个控制器上,我改为使用此代码并且工作正常
if (HttpContext.Session["Session"] != null)
{
return Json(HttpContext.Session["Session"].ToString());
}
return null;