2012-09-08 72 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; 
} 

一旦页面编译,其成员应在智能感知显示。