从aspx页面访问静态变量

时间:2012-09-08 20:44:26

标签: c# asp.net

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

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

2 个答案:

答案 0 :(得分:3)

IsLoggedIn中的函数Page1无法编译。它必须返回一些东西:

public bool IsLoggedIn()
{
  bool login = false;

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

  return login;
}

或者简单地说:

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

页面编译后,其成员应显示在intellisense中。

答案 1 :(得分:0)

最好用你的函数创建一个基类:

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

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

}

然后,当您从IsLoggedIn

继承时,您可以从您的网页访问BasePage
public partial class Page1 : BasePage
{
}

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