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
属性?从设计的角度来看,这没有多大意义。我有一些显示在嵌套母版页中的项目,需要根据该权限进行控制。如果有更好的方法来实现这一目标,那么我想知道这一点。