2011-06-30 28 views
0

我正在使用一些會話變量來存儲和傳遞ASP.Net應用程序的多個頁面上的數據。這種行爲雖然有點不可預測。我設置會話變量後的Page_Load如下ASP.Net會話變量 - 在緩存中掙扎

Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete 
If (Session.Item("ScholarshipID") = Nothing) Then 
    Session.Add("ScholarshipID", "Summer2011") 
End If 

好到目前爲止好,在正常頁面加載。如果用戶完成表單動作,點擊下一頁,並決定OH NO,我需要更改字段xyz,然後單擊回來,更正數據,然後提交,會話變量顯示爲NULL。爲什麼一個緩存會話以這種方式表現?除非我不理解會話變量的範圍,否則我不會銷燬/清除變量。

+0

做用戶點擊回瀏覽器窗口或你有這方面的ASP.net按鈕? – Nitesh

+0

瀏覽器後退按鈕。我沒有提供一個按鈕來在表單進程中遍歷後面的字。 – lazyPower

回答

0

嘗試

If (IsNothing(Session("Scholarship"))) Then 
    Session("Scholarship") = "Summer2011" 
End If