14


ユーザーIDに応じて同じページに異なるマスターページを設定する必要があるという要件があります(つまり、あるユーザーには1つのマスターページを設定し、別のユーザーには別のマスターを設定する必要があります)。任意のページに異なるマスターページを設定できますか?動的に?助けてください...

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

ページのMasterPageFileプロパティを設定することでできます。ただし、これはPreInitイベントInvalidOperationExceptionの後に呼び出された場合にスローされます。ASP.NETページのライフサイクルをご覧ください

MasterPageFileプロパティは、PreInitイベントでのみ設定できます。PreInitイベントの後にMasterPageFileプロパティを設定しようとすると、InvalidOperationException例外がスローされます。MasterPageFileプロパティが有効でない場合、ページライフサイクルの後半でタイプHttpExceptionの例外がスローされますが、プロパティがPreInitイベントに設定されている場合は例外はスローされません。

于 2012-06-07T11:33:47.397 に答える