14


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

4

3 回答 3

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

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

于 2012-06-07T11:33:18.517 回答
6

请注意 MSDN 上的这篇文章:

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

void Page_PreInit(Object sender, EventArgs e)
{
    this.MasterPageFile = "~/NewMaster.master";
}
于 2012-06-07T11:33:53.043 回答
2

您可以通过设置 Page 的MasterPageFile属性。但是,如果在PreInit事件InvalidOperationException之后调用它,则会抛出一个。查看ASP.NET 页面生命周期

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

于 2012-06-07T11:33:47.397 回答