0

我之前已经问过一个类似的问题,但这让我很头疼!在 ASPX 页面上,我有这个属性:

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 并且永远不会创建会话变量
  • 这会导致我出现问题,因为我无法根据该对象为会话设置值
  • 我还注意到,当我刚刚在页面上设置会话时,在页面上播放会话没有被回发。

有人可以帮忙吗?

4

1 回答 1

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

每当您更改面包对象的属性时,您必须在会话中使用新属性值恢复该对象。更新属性时会话不会更新。所以你需要一个二传手来做到这一点。

于 2012-10-04T16:31:44.827 回答