2012-09-08 166 views
1
public partial class Page1 :System.Web.UI.Page 
{ 
     public static LGDP.LDGPSession var1 = null; 

     private void Login(this, EventArgs e) 
     { 
      var1 = new LGDPSession(this, data, data); 
     } 

     public bool IsLoggedIn() 
     { 
      bool login = false; 

      if (var1 != null) 
      { 
       login = true; 
      } 

      return var1; 
     } 
} 

如何從Page2.apsx訪問Page1靜態var1或函數IsLoggedIn()?從aspx頁面訪問靜態變量

public partial class Page2 :System.Web.UI.Page 
{ 
     Page1.(nothing shows up here) 
} 

答案-----創建單獨的類並在頁面加載/回傳

private static bool _login = false; 

public static void SetLoggedIn(object lgdps) 
{ 
    if (lgdps == null) 
    { 
     _login = false; 
    } 

    if (lgdps != null) 
    { 
     _login = true; 
    } 
} 

public static bool IsLogin 
{ 
    get { return _login; } 
} 
+0

繼承訪問IsLoggedIn同樣都是兩個頁面命名空間? – Oded

+0

要訪問ISLoggedIn,您已經創建了對象Page1 –

+1

您是否將(真實)會話數據存儲在靜態變量中?靜態變量在appdomain中共享,所以每個人都會看到/使用/更新/創建一個不好的LGDPSession。 –

回答

0

這是更好它來創建你的函數的基類:

public class BasePage : Page 
{  
     public bool IsLoggedIn() 
     { 
      bool login = false; 

      if (var1 != null) 
      { 
       login = true; 
      } 
     } 

} 

然後你就可以從你的網頁,當你從BasePage

public partial class Page1 : BasePage 
{ 
} 

public partial class Page2 : BasePage 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(IsLoggedIn()) 
     { 
     } 
    } 
} 
+0

與將登錄和單個會話變量放入class.cs而不是aspx.cs頁面不同嗎?現在我正在aspx.cs頁面級登錄,以維護我的web應用程序中的頂級層次結構...我想繼續能夠做到這一點,但從另一個aspx.cs頁面知道是否第一頁是登錄或不是......(我只想保持一個登錄會話在任何時候)。 – CraigJSte

+0

@Erwin ...嘗試從這個問題的答案..但它沒有工作...尚未http://stackoverflow.com/questions/2445155/can-i-access-viewstate-of-one-page-in-another -page-in-asp-net?rq = 1 – CraigJSte

+1

你是對的..與ViewState或Current.Item.Add等混亂是太麻煩..並且不起作用我創建了一個單獨的類..! (爲什麼我沒有想到這一點???)顯示上面的課程.... – CraigJSte

3

你的功能IsLoggedInPage1不編譯訪問公共變種。它返回的東西:

public bool IsLoggedIn() 
{ 
    bool login = false; 

    if (var1 != null) 
    { 
    login = true; 
    } 

    return login; 
} 

或者乾脆:

public bool IsLoggedIn() 
{ 
    return var1 != null; 
} 

一旦頁面編譯,其成員應在智能感知顯示。