我点击了刷新按钮,这应该重新启动会话:
protected void btnRefresh_Click(object sender, EventArgs e)
{
HttpContext.Current.Session.Abandon();
HttpCookie mycookie = new HttpCookie("ASP.NET_SessionId");
mycookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(mycookie);
LblSessionID.Text = HttpContext.Current.Session.SessionID+
" test btnRefresh_Click";
LblIsNewSession.Text = Session.IsNewSession.ToString();
}
但是当按钮被点击时,
LblSessionID
中的 SessionID 值仍显示旧值,但另一个标签 LblIsNewSession
将显示为 IsNewSession 的 true。只有当我使用具有 autopostback="true"
的 asp.net 控件(如下拉框)时,LblSessionID
才会反映出实际的 SessionID 值,从那里开始 SessionID 保持不变。我确实使用了 global.asax。
有任何想法为什么
LblSessionID
表现不正常,并等待下一次 postback 才开始反映实际值?当我启动 Web 应用程序时,问题是相同的-
LblSessionID
显示不同的值,然后在第一次 postback 后更改并保持不变。