我单击应该重新启动会话的刷新按钮:
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();
}
但是当单击按钮时,SessionID 中的值LblSessionID
仍然显示旧值,但另一个标签LblIsNewSession
会将 IsNewSession 显示为 true。然后LblSessionID
,当我使用具有autopostback="true"
和从那里 SessionID 存在的 asp.net 控件(如下拉菜单)时,它将反映实际的 SessionID 值。
我确实使用 global.asax
知道为什么LblSessionID
没有表现出应有的行为并且正在等待下一次回发以开始反映实际价值吗?
当我启动 Web 应用程序时,问题是相同的 -LblSessionID
显示不同的值,然后在第一次回发后更改并从那里保持不变。