【问题标题】:How to create a Session Variable in a Public Property using VB.Net如何使用 VB.Net 在公共属性中创建会话变量
【发布时间】:2012-10-04 15:26:51
【问题描述】:

我之前已经问过一个类似的问题,但这让我很头疼!在 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 并且永远不会创建会话变量
  • 这会导致我出现问题,因为我无法根据该对象为会话设置值
  • 我还注意到,当我刚刚在页面上设置会话时,在页面上播放会话并没有在回发时保持。

有人可以帮忙吗?

【问题讨论】:

    标签: asp.net vb.net session


    【解决方案1】:

    试试这个:

    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
    

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

    【讨论】:

      猜你喜欢
      • 2014-03-04
      • 2012-05-11
      • 2015-04-18
      • 2020-06-10
      • 2017-04-10
      • 1970-01-01
      • 1970-01-01
      • 2014-06-15
      • 2014-10-06
      相关资源
      最近更新 更多