0

我有一个在页面上使用的会话变量。我知道会话应该用于在网站的不同页面之间存储数据,但是我有一个大数据集要存储,并且我使用的是会话而不是视图状态。

当我导航到另一个页面时,我想清空会话。

有什么办法可以做到吗?

我尝试在 PageUnload 事件上将会话变量设置为 null,但这不是我想要的。

当页面导航到另一个页面时,我想将会话变量设置为 null。

请告诉我。

4

3 回答 3

0

你只需要打电话

Session.remove("nameOfSessionVariable") ;

以及关于如何处理“离开页面事件”

您将不得不使用诸如 window.onbeforeunload() 之类的东西编写一些前端 javascript 来执行此操作。然后您必须进行 AJAX 调用来告诉您的后端该事件正在发生。这当然不是万无一失的。浏览器崩溃或强制“退出”不会触发此事件。

可以在这里看到C# ASP.NET Page Leaving 事件?

于 2013-09-05T14:09:02.473 回答
0

如果您真的想检测用户何时离开页面 - 您必须从客户端执行此操作。处理onbeforeunload事件并进行 AJAX 调用以清除会话变量。

但这是矫枉过正。考虑重构代码以在会话中存储更少量的数据,并且仅在不同页面之间使用。

于 2013-09-05T14:09:23.383 回答
0

在您导航到的页面上,您可以清除会话变量,如下所示:

Session.Remove("Name");

完全放弃会话:

Session.Abandon();
于 2013-09-05T14:11:42.077 回答