请参阅以下代码:
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
Session("Test") = Request.QueryString("ID")
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.Write(Session("Test"))
End Sub
End Class
请按照以下步骤操作:
1)转到Default.aspx?id = 1
2)单击按钮
3)转到Default.aspx?id = 2
4)单击按钮
5)使用后退按钮返回步骤1 6)单击按钮
是否有任何情况下第6步之后的ID可以是2而不是1?我试图捕获一个错误。我不认为这可能是因为按钮启动了ASP.NET生命周期并且首先执行了页面init。
答案 0 :(得分:0)
没有。在每个页面请求(例如点击)上,页面触发其Init事件 - 表示会话变量被赋予URL字符串中的值。
虽然可能会发生什么(至少我认为,请验证这一点!)是您的浏览器将以前的版本保留在缓存中,因此当您单击后退按钮时,它可能显示错误的值。但是,刷新后它应该按预期工作。尝试使用VS调试您的网站,以查看存储在变量中的实际值。