我想将一个变量从session设置为null
Session["my_variable"] = null;
我尝试使用OnUnload这样
protected override void OnUnload(EventArgs e)
{
base.OnUnload(e);
Session["my_variable"] = null;
}
但它不能正常工作,它在用户在页面上时设置变量,但我想将其设置为null,这是离开页面
答案 0 :(得分:2)
一旦将页面提供给客户端,您的函数/事件就会被触发,因为它是服务器端事件。您可以使用Viewstate但仍然无法实现,因为导航不会向客户端发送任何事件,而客户端脚本可以提供帮助。
此功能可以通过java脚本on-unload事件实现。您必须向服务器发送请求以删除特定会话值或将其置为空(因为会话是键值对象)。
您的问题最好在Asp Forum解释
但要小心。此事件可能仅在某些浏览器导航时触发。你可能不得不做一些代码工作来实现你想要的东西。
答案 1 :(得分:1)
为什么不使用ViewState取代会话变量。
离开页面后,viewstate变量会自动删除
这里是如何使用它的示例
protected DataSet MyDataSet
{
get
{
if(ViewState["MyDataSet"] == null)
{
return null;
}
else
{
return (DataSet)ViewState["MyDataSet"];
}
}
set
{
ViewState["MyDataSet"] = value;
}
}