【发布时间】:2012-06-07 11:31:24
【问题描述】:
我有一个要求,我想根据用户 ID 为同一页面设置不同的母版页(即,对于一个用户,它必须设置一个母版页,对于另一个用户,它必须设置另一个母版页)。我们可以为任何页面设置不同的母版页吗动态的?请帮忙...
【问题讨论】:
标签: c# .net master-pages master
我有一个要求,我想根据用户 ID 为同一页面设置不同的母版页(即,对于一个用户,它必须设置一个母版页,对于另一个用户,它必须设置另一个母版页)。我们可以为任何页面设置不同的母版页吗动态的?请帮忙...
【问题讨论】:
标签: c# .net master-pages master
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/MyMaster.master";
}
说明:您可以将母版页动态附加到内容页。由于在页面处理的初始化阶段合并了母版页和内容页,因此在此之前必须分配母版页。通常,您在 PreInit 阶段动态分配母版页。
【讨论】:
请注意 MSDN 上的这篇文章:
http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/NewMaster.master";
}
【讨论】:
您可以通过设置页面的MasterPageFile 属性。但是,如果在PreInit 事件之后调用它,则会抛出InvalidOperationException。看看ASP.NET Page Lifecycle
MasterPageFile 属性只能在 PreInit 事件中设置;在 PreInit 事件之后尝试设置 MasterPageFile 属性将引发 InvalidOperationException 异常。如果 MasterPageFile 属性无效,则在页面生命周期后期会抛出 HttpException 类型的异常,但在 PreInit 事件中设置该属性时不会抛出异常。
【讨论】: