簡體   English   中英

從aspx頁面訪問靜態變量

[英]access static variable from aspx page

 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 static var1或函數IsLoggedIn()?

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

答案-----在pageload / postback中創建了單獨的類並訪問了public var

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; }
}

您的Page1中的函數IsLoggedIn無法編譯。 它必須返回一些東西:

public bool IsLoggedIn()
{
  bool login = false;

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

  return login;
}

或者干脆:

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

頁面編譯后,其成員應顯示在intellisense中。

最好用你的函數創建一個基類:

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

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

}

然后,當您從BasePage繼承時,可以從您的頁面訪問IsLoggedIn

public partial class Page1 : BasePage
{
}

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM