ユーザーIDに応じて同じページに異なるマスターページを設定する必要があるという要件があります(つまり、あるユーザーには1つのマスターページを設定し、別のユーザーには別のマスターを設定する必要があります)。任意のページのマスターページを動的に?助けてください...
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ページのライフサイクル をご覧ください
MasterPageFileプロパティは、PreInitイベントでのみ設定できます。 PreInitイベントの後にMasterPageFileプロパティを設定しようとすると、InvalidOperationException例外がスローされます。 MasterPageFileプロパティが無効な場合、ページライフサイクルの後半でタイプHttpExceptionの例外がスローされますが、プロパティがPreInitイベントに設定されている場合は例外はスローされません。