在類別中讀取Session的內容

有個網友剛好提到這個問題,小喵於是做了個小小的測試,測試的過程如下:

首先小喵在畫面中安排一個TextBox,一個按鈕,當按鈕按下後,將TextBox中的內容放入Session中

接著在安排另外一個按鈕,希望按下按鈕後,可以從一個類別把他的屬性(Property)取出,這個屬性(Property)的內容是從Session中取得。於是程式碼如下:

首先是畫面安排:Default.aspx

        <asp:TextBox ID="txtIn" runat="server"></asp:TextBox>
        <asp:Button ID="btn1" runat="server" Text="取得資料放入Session" />
        <br />
        <asp:Button ID="btn2" runat="server" Text="從物件中取得Session放入Label" />
        <br />
        <asp:Label ID="lbl1" runat="server" Text=""></asp:Label>

接著是撰寫一個類別來處理objTSession.vb

請記得要【Imports System.Web.HttpContext】才能處理唷

Imports Microsoft.VisualBasic
Imports System.Web.HttpContext

Public Class objTSession
    Private m_SData As String = Current.Session("txt")

    Public ReadOnly Property SData() As String
        Get
            Return "從Class中讀出的Session:" + m_SData.ToString
        End Get
    End Property

End Class

接著處理畫面的CodeFile:Default.aspx.vb

    Protected Sub btn1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn1.Click
        Session("txt") = Me.txtIn.Text
    End Sub

    Protected Sub btn2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btn2.Click

        Dim ots As New objTSession
        Me.lbl1.Text = ots.SData

    End Sub

測試結果,當輸入TextBox後將輸入的文字放入Session

然後在Class中確實可以把Session中的內容取出,透過Property傳出,並顯示在畫面上。

ts01

不過在細想一下,如果一開始就去按第二個按鈕,這時候Session是空的,那會發生什麼事呢??

發生了【並未將物件參考設定為物件的執行個體】的錯誤訊息

這原因是因為直接按第二顆按鈕時,Session是不存在的

因此要修改一下Class的內容如下,希望當Session不存在的時候,就放入空字串

修改後的Class【objTSession.vb】

Imports Microsoft.VisualBasic
Imports System.Web.HttpContext

Public Class objTSession
    Private m_SData As String

    Public ReadOnly Property SData() As String
        Get
            Return "從Class中讀出的Session:" + m_SData
        End Get
    End Property

    Public Sub New()
        If Current.Session("txt") IsNot Nothing Then
            m_SData = Current.Session("txt").ToString
        Else
            m_SData = ""
        End If
    End Sub

End Class

我們在New的時候,來處理這樣的動作,判斷Session是否是Nothing,如果有東西就把東西放入,如果是Nothing的話,就給空字串。

這樣運作起來就不會有問題囉

^_^

转载于:https://www.cnblogs.com/topcat/archive/2008/08/25/1275585.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值