如何在运行时更改页面的母版页?

时间:2014-03-12 14:20:58

标签: c# asp.net webforms master-pages

我的某个项目需要在运行时更改母版页。

我的意思是我需要应用检查,并且在该检查的基础上,可以将特定母版页调用到我的原生aspx页面。

请帮助我。

提前致谢:)

3 个答案:

答案 0 :(得分:2)

例如:

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/NewMaster.master";
}

根据需要应用您的条件。来自here

答案 1 :(得分:1)

是。仅在PreInit页面事件期间(即在运行时开始处理请求之前)设置MasterPageFile属性(因为具有母版页的页面的呈现发生在Init事件之前)

protected void Page_PreInit(object sender, EventArgs e)
{
       MasterPageFile = "simple2.master";
}

如果尝试在Init或Load事件处理程序中设置MasterPageFile属性,则会引发异常。

是的,有可能,实施如下

Dynamically Loading Master Pages in ASP.NET 2.0

答案 2 :(得分:0)

为了实现这一点,我们需要在页面获取渲染之前在Page_PreInit中编写代码。

将以下代码放入您的代码中:

if (Session["userType"] == "Admin") //check the user type
    this.Page.MasterPageFile = "~/Admin.master";
 else
    this.Page.MasterPageFile = "~/User.master";

希望这有帮助。