2012-10-04 62 views
3

我在我的ASP.Net上創建了一個公共屬性,它包含一個實體的會話。其目的是在用戶填寫表單上的多個步驟時添加實體,然後將整個批次保存到數據庫中。但是,當我使用會話時,我收到錯誤「對象引用未設置爲對象的實例」。VB.Net中的ASP.Net會話

這裏是我的代碼:

Public ReadOnly BreadQuestionnaire as Bread 
          Implements IQuestionnaire.BreadQuestionnaire 
     Get 
      If Me.Session("BreadQuestionnaire") Is Nothing Then 
       Me.Session("BreadQuestionnaire") = New Bread() 
      End If 
     Return TryCast(Me.Session("BreadQuestionnaire"),Bread) 
     End Get 
End Property 

它是基於我在C#中使用它以前從來沒有給我帶來任何麻煩,但我有VB.Net沖斷了我的代碼。

那麼,任何人都可以幫助我嗎?

+1

在* *哪個頁面的方法'BreadQuestionnaire'叫? – adatapost

+0

它是在我的mvc web應用程序的控制器類中,通過界面查看 – Andy5

+0

以下是有關此問題的鏈接 - http://stackoverflow.com/questions/759795/c-sharp-cannot-check-session-exists – Wade73

回答

0

system.web.httpcontext.current.session.add("BreadQuestionnaire", Bread)

我不能肯定me.session將工作 - 沒有財產屬於頁面類或者是在它自己的?無論哪種方式使用httpcontext.current應始終可用。

而你兩次檢索會議,你能做到這一點在一次旅行:

Public ReadOnly BreadQuestionnaire as Bread 
          Implements IQuestionnaire.BreadQuestionnaire 
     Get 
      Dim _sessionBread = system.web.httpcontext.current.session("BreadQuestionnaire") 
      If_sessionBread Is Nothing Then 
      Dim _bread As New Bread 
      system.web.httpcontext.current.session.add("BreadQuestionnaire", _bread) 
      Return _bread 
      Else 
      Return _sessionBread 
      End If 
     End Get 
End Property