我想根据用户ID设置同一页面的不同主控页(即为一个用户设置一个主控页,为另一个用户设置另一个主控页)。我们能否动态地为任何页面设置不同的主控页?
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/MyMaster.master";
}
解释:您可以动态地将主页附加到内容页。因为主页和内容页在页面处理的初始化阶段合并,所以必须在此之前分配主页。通常,在预初始化阶段动态分配主页。
void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/NewMaster.master";
}
InvalidOperationException
异常。请参阅ASP.NET页面生命周期。
MasterPageFile属性只能在PreInit事件中设置;尝试在PreInit事件之后设置MasterPageFile属性将引发InvalidOperationException异常。如果MasterPageFile属性无效,则在页面生命周期的后期将引发HttpException类型的异常,但是在PreInit事件中设置该属性时不会引发异常。