ユーザーIDに応じて同じページに異なるマスターページを設定する必要があるという要件があります(つまり、あるユーザーには1つのマスターページを設定し、別のユーザーには別のマスターを設定する必要があります)。任意のページに異なるマスターページを設定できますか?動的に?助けてください...
3 に答える
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イベントに設定されている場合は例外はスローされません。