0

さまざまな Web ページで使用されるクラスがあり、同じページで同じクラスを 2 回使用できます。クラスメンバーは、コードのさまざまな部分でアクセスされるため、そのように宣言しました..

Public Class Page
    Inherits System.Web.UI.Page

    Dim UserDetails as New User
    Dim ThisMonthDD as New DeadlineDates
    Dim LastMonthDD as New DeadlineDates

    Protected Sub Page_Load()

       If Not IsPostBack Then
          UserDetails.GetUserDetails(Request.ServerVariables("LOGON_USER").Split("\")(1))
          ThisMonthDD.BaseDate = Now()
          ..........
       Else
          ..........
       End If
    End Sub

    Protected Sub SomeOtherEvent()

          Tb_claimdatedeadline = ThisMonthDD.UserSubmitDeadline
          .......
    End Sub

ポストバック時にクラスがリセットされないようにして、ページ クラスのすべてのイベントに表示されるようにするにはどうすればよいですか?

4

1 に答える 1

1

クラスがシリアライズ可能である場合、オブジェクト全体 (およびその状態) をセッションに保存できます。追加すると、次のようになります。

HttpContext.Current.Session.Add("currentUserDetails", UserDetails)

後で参照する (または更新する) 場合は、その存在を確認し、次のように適切に処理する必要があります。

If HttpContext.Current.Session.Item("currentUserDetails") IsNot Nothing Then
     ' Do stuff with it here
End If
于 2013-06-11T14:40:08.833 に答える