我有一个使用 2 个母版页的应用程序。一个用于主页,一个用于弹出页面。这些都继承自 Masterpages
public partial class MainMasterPage : System.Web.UI.MasterPage
{
UserBO objUser = null;
public UserBO GetCurrentUser()
{
UserBO userBO = new UserBO();
.....
.....
return userBO;
}
}
public partial class PopupMasterPage : System.Web.UI.MasterPage
{
UserBO objUser = null;
public UserBO GetCurrentUser()
{
UserBO userBO = new UserBO();
.....
.....
return userBO;
}
}
到目前为止,一切都很好。所以我的内容页面都继承自一个基类。基类有一个从基类调用 GetCurrentUser 的方法。
public class BasePage : Page
{
//.....
protected UserBO GetCurrentUserFromMasterPage()
{
this.Master
Elsa.MasterPages.MainMasterPage master = (Elsa.MasterPages.MainMasterPage )this.Master;
return master.GetCurrentUser();
}
}
所以在这里你可以看到基本页面转换MasterPage
然后调用GetCurrentUser
.
只是为了背景......母版页让当前用户登录到系统,然后使用信息绘制自己。如果用户在会话中,它会获取它,否则它会从数据库加载。我不希望内容页面做同样的事情,所以我希望基本页面始终从主页面获取内容页面的当前用户。
但是我的问题是,因为有 2 个母版页,并且所有网页都来自基本页。我需要能够转换为正确的母版。
public partial class MyMainPage : Elsa.Pages.BasePage
{
private long _userId = -1;
public partial class MyPopupPage : Elsa.Pages.BasePage
{
private long _userId = -1;
如果我输入 MasterType 指令,我可以在内容页面中为正确的 Master 调用该方法。但我不想从内容中调用它作为它的常用方法,所以我需要在基础中使用它。
那么有谁知道如何处理这个问题。我正在考虑再次为 PopupBasePage 派生 BasePage 并将其写入GetCurrentUserFromMasterPage()
弹出主机。或者我是否将某些内容传递给 BasePage 构造函数以告诉它要转换为什么。
因为我有很多网页,所以我想将对我所有网页的影响保持在最低限度。
谢谢米