【发布时间】:2014-04-16 18:14:27
【问题描述】:
我的一个项目中有一个要求,我需要在运行时更改母版页。
我的意思是我需要应用检查,并且基于该检查,可以将特定母版页调用到我的本机 aspx 页面。
请帮帮我。
提前致谢:)
【问题讨论】:
标签: c# asp.net webforms master-pages
我的一个项目中有一个要求,我需要在运行时更改母版页。
我的意思是我需要应用检查,并且基于该检查,可以将特定母版页调用到我的本机 aspx 页面。
请帮帮我。
提前致谢:)
【问题讨论】:
标签: c# asp.net webforms master-pages
例如:
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/NewMaster.master";
}
根据需要应用条件。来自here。
【讨论】:
是的。仅在 PreInit 页面事件期间设置 MasterPageFile 属性,即在运行时开始处理请求之前(因为带有母版页的页面呈现发生在 Init 事件之前)
protected void Page_PreInit(object sender, EventArgs e)
{
MasterPageFile = "simple2.master";
}
如果您尝试在 Init 或 Load 事件处理程序中设置 MasterPageFile 属性,则会引发异常。
是的,可以,如下所示实现
【讨论】:
为了实现这一点,我们需要在页面渲染之前在 Page_PreInit 中编写代码。
将下面的代码放入你的代码后面:
if (Session["userType"] == "Admin") //check the user type
this.Page.MasterPageFile = "~/Admin.master";
else
this.Page.MasterPageFile = "~/User.master";
希望这会有所帮助。
【讨论】: