如何在用户控件卸载后清除会话变量
how to clear session variable after a user control unload
我在用户控件 (ascx) 中使用会话变量,当用户关闭网页或重定向到其他页面时,如何从会话中删除它?
对于重定向,您可以在重定向时使用此代码 page/view 加载:
if (!IsPostBack)
{
Session.Clear(); //if you want clear session
Session.Remove("myVar");//if you want clear just 1 session variable
}
关闭页面情况会更加困难,因为 HTTP 是一种无状态协议,所以您的服务器不知道用户是否关闭了他们的浏览器,或者他们只是长时间离开了打开的浏览器 window。
У您可以使用 Ajax 来处理选项卡关闭时的清除会话,如下所示。
<body onunload="unlodFunc()">
<script>
function unlodFunc()
{
$.ajax({
type: "POST",
url: "MyPage.aspx/ClearSession",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
}
});
}
</script>
C#代码:
[WebMethod]
public static void ClearSession()
{
if (Session["myVar"] != null)
{
Session.Remove("myVar");
}
}
您也可以查看 this link。
我在用户控件 (ascx) 中使用会话变量,当用户关闭网页或重定向到其他页面时,如何从会话中删除它?
对于重定向,您可以在重定向时使用此代码 page/view 加载:
if (!IsPostBack)
{
Session.Clear(); //if you want clear session
Session.Remove("myVar");//if you want clear just 1 session variable
}
关闭页面情况会更加困难,因为 HTTP 是一种无状态协议,所以您的服务器不知道用户是否关闭了他们的浏览器,或者他们只是长时间离开了打开的浏览器 window。
У您可以使用 Ajax 来处理选项卡关闭时的清除会话,如下所示。
<body onunload="unlodFunc()">
<script>
function unlodFunc()
{
$.ajax({
type: "POST",
url: "MyPage.aspx/ClearSession",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(data) {
}
});
}
</script>
C#代码:
[WebMethod]
public static void ClearSession()
{
if (Session["myVar"] != null)
{
Session.Remove("myVar");
}
}
您也可以查看 this link。