我要求根据用户ID为同一页面设置不同的母版页(即一个用户必须设置一个母版页,另一个用户必须设置另一个母版)。可以为任何页面设置不同的母版页动态吗?请帮忙......
答案 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事件中设置属性时不会引发异常。