繁体   English   中英

ASP.NET MVC 会话状态丢失

[英]ASP.NET MVC Session state is lost

我有一个控制器和两个动作:

    public ActionResult Index()
    {
        this.Session.Add("Boo", "Foo");
        return View();
    }

    public ActionResult Details()
    {
        Debug.WriteLine(this.Session["Boo"]);
        return View();
    }

然后在索引视图上我有一个链接

    <div class="form-group">
        @Html.ActionLink("Details", "details")
    </div>

当调用Index操作时,我设置会话变量“Boo”,然后在Index视图中,单击详细信息链接,当我进入详细信息操作时,会话 ID 与索引操作中的不同,显然this.Session["Boo"]为空。

任何想法为什么会发生?

谢谢!

当在浏览器中禁用 cookie 时会发生这种情况。 因此,会话不保留状态。

即使使用支持 cookie 的浏览器,一些用户还是喜欢关闭 cookie 支持。 如果您的应用程序需要响应不支持 cookie 的浏览器,则不能使用 ASP 会话管理。

在这种情况下,您必须编写自己的机制来在应用程序中从页面到页面传递信息。 有两种一般方法可以做到这一点:

  • 将参数添加到 URL 的查询字符串。
  • 向表单添加隐藏值。

有关更多信息,请参阅文档: 在 ASP 中使用 Cookie 维护会话

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM