如果我将值存储在会话变量中
Session["Int"] = 100;
Session_End 事件中的内容是什么?它将是 null 还是 100?
void Session_End(object sender, EventArgs e)
{
object objInt = Session["Int"]; // Null or 100 ?
}
意思是, Session_End 会在处理会话中的所有内容之后还是之前触发?
如果我将值存储在会话变量中
Session["Int"] = 100;
Session_End 事件中的内容是什么?它将是 null 还是 100?
void Session_End(object sender, EventArgs e)
{
object objInt = Session["Int"]; // Null or 100 ?
}
意思是, Session_End 会在处理会话中的所有内容之后还是之前触发?
它是 100。
要自己测试它,只需将 ASP.NET 应用程序文件添加global.asax
到您的项目并处理Session_Start
结束Session-End
事件:
void Session_Start(object sender, EventArgs e)
{
Session["Int"] = 100; // 100
}
void Session_End(object sender, EventArgs e)
{
object objInt = Session["Int"]; // it is still 100 here
}
Session.Abandon()
您可以在(或到期时)结束会话。
protected void Page_Load(object sender, EventArgs e)
{
Session.Abandon(); // after this Session.End is called
}
我发现 Session["Int"] 将为 100。我将会话超时设置为仅 1 分钟,并在该事件中设置了一个断点。