【问题标题】:Accesing and removing session that was set with Ajax访问和删除使用 Ajax 设置的会话
【发布时间】: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


【解决方案1】:

正如伊戈尔所说,我遇到了与理论相关的错误,我引用了

这两个容器完全不同且不相关——一个在浏览器中,另一个在服务器上。

您似乎混淆了客户端javascript window.sessionStorage 和服务器端System.Web.HttpContext.Current.Session

由于他的敏锐观察,问题得到了解决

【讨论】:

    猜你喜欢
    • 2015-09-07
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2016-02-10
    相关资源
    最近更新 更多