Asp.net 从母版基本页类访问基本页属性

Asp.net 从母版基本页类访问基本页属性,asp.net,Asp.net,大家好,提前谢谢 我创建了一个基本页面,它定义了两个类,一个用于管理页面本身的变量,另一个用于管理母版页的输出: public class MyBasePage : BasePage { public bool IsEmployee; protected new void Page_Init(object sender, EventArgs e) { base.Page_Init(sender,e); IsEmpl

大家好,提前谢谢

我创建了一个基本页面,它定义了两个类,一个用于管理页面本身的变量,另一个用于管理母版页的输出:

 public class MyBasePage : BasePage
 {
      public bool IsEmployee;

      protected new void Page_Init(object sender, EventArgs e)
      {
          base.Page_Init(sender,e);
          IsEmployee = GetEmployee();
      }
 }

 public class MyMasterBasePage : BaseMasterPage
 {
     public new void Page_Init(Object sender, EventArgs e)
     {
          base.Page_Init(sender,e);
          session = GetSession();
     }
 }
我需要从母版页访问iEmployee。我尝试在母版页上实际调用一个基页实例,然后尝试调用它,但是bool返回false,我尝试直接从类中执行相同的操作,并获得相同的结果。我可以将这些值放入会话中,但我真的不想这样做。是否有其他方法访问该变量

public class MyMasterBasePage : BaseMasterPage
{
  ...
  private bool IsEmployee
  {
    get
    {
      if (Page is MyBasePage)
        return ((MyBasePage)Page).IsEmployee;
      else
        return false;
    }
  }
}
更新:

public class MyBasePage : BasePage
{
  public bool? isEmployee;
  public bool IsEmployee
  {
    get
    {
      if (!isEmployee.HasValue)
      {
        isEmployee.Value = GetEmployee();
      }
      return isEmployee.Value;
    }
  }

}
然后拆下管路

IsEmployee = GetEmployee();

MyBasePage.Page_Init

此代码允许我访问基本页值,我发现我还有一个问题,即实际填充iEmployee的方法只有在母版页上填充iEmployee的get语句运行后才会触发,因此我仍然没有得到正确的值。您可以检查母版页和内容页的
page\u Init
方法的调用顺序在这些方法中放置断点-我不记得这个顺序是什么。要解决这个问题,请按需设置
MyBasePage.IsEmployee
属性。请参阅答案更新。为什么要在母版页上设置
IsEmployee
属性?从设计的角度来看,这没有多大意义。我有一些显示在嵌套母版页中的项目,需要根据该权限进行控制。如果有更好的方法来实现这一目标,那么我想知道这一点。