2012-10-04 47 views
0

在一个公共属性创建一个会话变量,我已经问过类似的问题以前,但这是做我的头!在ASPX页面,我有这样的特性:如何使用VB.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 

我的问题如下:

  • 停留在页面上,当我进入房地产的第一次检查,看是否会话存在返回true并且会话变量永远不会创建
  • 这会导致我出现问题,因为我无法为基于该对象的会话设置值
  • 我也注意到在页面上玩耍该会议不在会议上举行丁字裤的时候我只是在页面上设置一个会话。

任何人都可以请帮助?

回答

0

试试这个:

Public ReadOnly BreadQuestionnaire as Bread 
          Implements IQuestionnaire.BreadQuestionnaire 
     Get 
      Dim obj = TryCastMe.Session("BreadQuestionnaire"), Bread) 
      If (obj IsNot Nothing) Then 
       obj = new Bread() 
       Me.Session("BreadQuestionnaire") = obj 
      End If 

      return obj 
     End Get 
End Property 

任何时候您更改属性的面包对象,你要恢复的对象,在会话中的新属性值。会话在更新属性时不会更新。所以,你需要一个二传手来做到这一点。