【发布时间】:2015-03-30 21:04:43
【问题描述】:
我的 Web 应用程序中有几个使用 ajax 设置的会话变量 sessionStorage.setItem
例如
sessionStorage.setItem("id", 345 );
我需要做的是从我的 c# 控制器中访问、更改和最重要的是删除这些变量
到目前为止我为删除/销毁会话变量所做的尝试
Session.RemoveAll();
Session.Remove("id")
Session.Clear();
Session.Abandon();
到目前为止我为访问会话变量所做的尝试
var sesionId = {Controller}.ControllerContext.HttpContext.Session["{id}"];
var sesionId = this.ControllerContext.HttpContext.Session["{id}"];
var sesionId = ControllerContext.HttpContext.Session["{id}"];
//all return null
这些失败的试验取自 Stackoverflow 中的其他类似问题,但我相信设置变量的方法可能与这些方法不适合我的事实有关。
【问题讨论】:
-
您似乎混淆了客户端 javascript
window.sessionStorage和服务器端System.Web.HttpContext.Current.Session- 请澄清一下。 -
Igor 我也尝试过使用
System.Web.HttpContext.Current.Session["id"];,但没有成功。这些会话变量最初是从数据库中获取的,并且是使用 javascript 的sessionStorage.setItem设置的,但现在我需要从另一个 c# 控制器中修改和删除这些变量 -
这两个容器完全不同且不相关——一个在浏览器中,另一个在服务器上。
-
好吧,我不知道这些差异,并认为试图访问相同的东西。所以不可能从 c# 控制器访问在 javascript 中创建的会话变量,或者是吗?
-
当然,可以从 javascript
sessionsStorage中删除项目 - 但只能通过执行页面中包含的 javascript 代码然后调用客户端。
标签: c# ajax asp.net-mvc-4 session model-view-controller