如何动态设置母版页?

时间:2012-06-07 11:31:24

标签: c# .net master-pages master


我要求根据用户ID为同一页面设置不同的母版页(即一个用户必须设置一个母版页,另一个用户必须设置另一个母版)。可以为任何页面设置不同的母版页动态吗?请帮忙......

3 个答案:

答案 0 :(得分:26)

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

说明:您可以将母版页动态附加到内容页面。由于在页面处理的初始化阶段合并主页面和内容页面,因此必须先分配主页面。通常,您在PreInit阶段动态分配母版页。

答案 1 :(得分:6)

请注意MSDN上的这篇文章:

http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

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

答案 2 :(得分:2)

您可以通过设置页面的MasterPageFile属性来实现。但是,这将抛出InvalidOperationException,除非在PreInit事件之后调用它。看看ASP.NET Page Lifecycle

  

MasterPageFile属性只能在PreInit事件中设置;尝试在PreInit事件之后设置MasterPageFile属性将抛出InvalidOperationException异常。如果MasterPageFile属性无效,则会在页面生命周期中稍后抛出类型为HttpException的异常,但在PreInit事件中设置属性时不会引发异常。