我有一個VB.Net網站,並在我的註冊頁面我將SessionState中存儲ViewState。我正在使用下面的代碼來實現這一點。問題與ViewState堅持會話時使用IE(但不是FF)
Private _sessionViewStatePersister As System.Web.UI.PageStatePersister
Protected Overrides ReadOnly Property PageStatePersister() As System.Web.UI.PageStatePersister
Get
If _sessionViewStatePersister Is Nothing Then
_sessionViewStatePersister = New SessionPageStatePersister(Me)
End If
Return _sessionViewStatePersister
End Get
End Property
這一直是個做工精細,然後我開始看到偶爾「System.NullReferenceException:對象引用未設置到對象的實例。」。
當我嘗試從DropDownList的SelectedItem中獲取文本屬性的值時引發異常,問題是DropDownList在頁面回發後不包含項目。
問題只存在於使用IE瀏覽器(根據我的日誌7或8,但我只測試8),但不是當使用FireFox 3.5時。
恢復使用正常的ViewState持久性機制導致頁面再次在IE中工作。 沒有記錄ViewState相關的異常,它就像頁面'認爲'它沒有存儲ViewState。
有誰知道可能會導致這種情況,有沒有最近的IE補丁可能是罪魁禍首? 有沒有其他人遇到類似我所描述的東西?
謝謝!
很好的答案。巧合的是,我在測試中禁用了Cookie。 :S這是有道理的,我會看到IE導致這個問題,因爲企業環境更可能禁用cookie。 – withakay 2009-10-28 10:59:25