如何动态设置母版页?

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

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"; } 

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

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