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

3
在我的项目中有一个需求,我需要在运行时更改主页(Master Page)。
我的意思是,我需要应用某种检查,并根据该检查调用特定的主页来呈现本地aspx页面。
请帮助我完成这个需求。
提前谢谢 :)

http://www.exforsys.com/tutorials/asp.net-2.0/changing-master-pages-dynamically-in-asp.net-2.0.html - Dan Drews
3个回答

3

例如:

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

根据需要应用你的条件语句。参考这里


1

是的。只有在PreInit页面事件期间设置MasterPageFile属性,也就是说,在运行时开始处理请求之前(因为使用主页呈现页面发生在Init事件之前)。

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

如果您尝试在Init或Load事件处理程序中设置MasterPageFile属性,将引发异常。
是的,这是可能的,实现方式如下 在ASP.NET 2.0中动态加载主页面

1
为了实现这一点,我们需要在页面呈现之前在Page_PreInit中编写代码。
请将以下代码放入你的后台代码中:
if (Session["userType"] == "Admin") //check the user type
    this.Page.MasterPageFile = "~/Admin.master";
 else
    this.Page.MasterPageFile = "~/User.master";

希望这有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接