網頁在一個頁面之間的類的實例,我想創建一個類的實例作爲這樣的:asp.net通過
pOne = New pClass()
xOne = New xClass(pOne)
在隨後的頁面
然後我想能夠使用推遲實施和xOne。由於pOne和xOne是第一頁的本地,我如何在其他頁面中使用它們?
網頁在一個頁面之間的類的實例,我想創建一個類的實例作爲這樣的:asp.net通過
pOne = New pClass()
xOne = New xClass(pOne)
在隨後的頁面
然後我想能夠使用推遲實施和xOne。由於pOne和xOne是第一頁的本地,我如何在其他頁面中使用它們?
您可以使用Session變量來存儲該對象並在另一個頁面中使用它。
//Set the session
Session["p1"]=pOne;
Session["x1"]=xOne;
在第二頁
,閱讀會議
if(Session["p1"]!=null)
{
// If object is present in session, Cast that to our class (PClass) type
PClass objP1=(PClass) Session["p1"];
//Now you can use objP1
}
if(Session["x1"]!=null)
{
XClass objx1=(XClass) Session["x1"];
//Now you can use objx1
}
這是一個很好的做法,訪問之前總是做一個空檢查變量
這裏是VB.NET版本(我希望這可以工作,我沒有太多的VB.NET經驗)
// Set the Session
Session("p1")=pOne
Sesssion("x1")=xOne
在閱讀會話時的第二頁,
if Session("p1") IsNot Nothing Then
Dim objP1 As pClass
objP1=CType(Session("p1"),pClass)
'Now you can use objP1
End If
if Session("x1") IsNot Nothing Then
Dim objX1 As xClass
objX1=CType(Session("x1"),xClass)
'Now you can use objX1
End If
你可以使用HttpContext.Items
,那麼你不必清理延遲對象,他們會自行消失,除非你重新設置:
Use HttpContext Item Collection to pass objects across pages
除了您想要使用VB.net而不是使用Shyju的C#以外:P –
如果您要這樣做,您應該**在您的項目資源或設置文件中創建條目並引用這些條目訪問會話時。沒有比追蹤與錯字相關的錯誤更令人惱火的了。 – jwiscarson
請謹慎對待會話。整個對象圖必須被序列化和解序列化。這可能不是一個主要的開銷取決於你的對象,但我見過人們寫大會議對象... –