2011-11-23 53 views
3

網頁在一個頁面之間的類的實例,我想創建一個類的實例作爲這樣的:asp.net通過

pOne = New pClass() 
    xOne = New xClass(pOne) 
在隨後的頁面

然後我想能夠使用推遲實施和xOne。由於pOne和xOne是第一頁的本地,我如何在其他頁面中使用它們?

回答

5

您可以使用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 
+0

除了您想要使用VB.net而不是使用Shyju的C#以外:P –

+0

如果您要這樣做,您應該**在您的項目資源或設置文件中創建條目並引用這些條目訪問會話時。沒有比追蹤與錯字相關的錯誤更令人惱火的了。 – jwiscarson

+1

請謹慎對待會話。整個對象圖必須被序列化和解序列化。這可能不是一個主要的開銷取決於你的對象,但我見過人們寫大會議對象... –