我在回发期间将会话值存储在Page_Load中,但是我在下次往返时无法在Page_Init中访问它们。我的逻辑的要点是最终用户应该能够在Page_Load期间登录回发,其中值存储在Session对象中,然后在下一次往返中我可以从Session对象中获取这些值并初始化自定义对象类型。最初我尝试根据Session中存储的值初始化我的对象,但是当我发现它没有工作时,我在Page_Init中添加了一些代码来调试,发现我根本无法访问它们。问题是,如果我完全重新加载页面,我可以很好地访问这些值 - 但是如果我尝试刷新或尝试再次触发回发按钮,就好像代码被忽略一样。
我能够使用此逻辑访问Session中的其他值(我有一个" StartTime"值I'我能够在BeginRequest中创建它)但是我无法访问在Page_Load中回发期间创建的内容。
这与我的自定义类型无关,因为我已尝试使用硬编码值并得出相同的结果。
处理我的回发的地方:
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
Select Case Me.form_action.Value.ToLower()
Case "save"
If Me.tab.ActiveTabIndex = 0 Then
cart.Login(Me.login.Value, Me.password.Value)
UpdateRecord()
End If
End Select
End Sub
这些方法更新数据库并存储会话值:
Public Sub UpdateRecord()
cart.UpdateDB()
SaveCart()
End Sub
Public Sub SaveCart()
If Not cart.ID > 0 Then Exit Sub
Me.cart_id.Value = cart.ID
Session("seminars_cart_id") = cart.ID
End Sub
这是我尝试访问Page_Init
中的数据的地方Protected Sub Page_Init(sender As Object, e As EventArgs) Handles Me.Init
If Session.Keys.Count > 0 Then
phDbg.InnerHtml = ""
For Each k As Object In Session.Keys
Me.phDbg.InnerHtml += String.Format("Session({0}) - {1}<br />", k, Session(k))
Next
End If
End Sub