2010-12-16 23 views
2

Können wir die Masterpage dynamisch geladen haben? Ich habe eine Seite, die in zwei verschiedenen Szenarien verwendet werden muss, dh mit zwei verschiedenen Masterseiten.Laden von Masterseiten dynamisch?

Schätzen Sie alle Ihre Hilfe.

Danke,

Antwort

5

auf Ihrer Seite Sie

protected override void OnPreInit(EventArgs e) 
{ 
    base.OnPreInit(e); 
    this.Page.MasterPageFile = "~/AlternateMasterPage.master"; 
} 

zu ändern, die man schreiben kann es

+2

Es ist erwähnenswert, dass dies nur im PreInit-Ereignis der Seite durchgeführt werden kann. –

+0

yup! aktualisiert ... – hunter

+0

Awesome, Es funktioniert. Seitenlebenszyklus ist groß wie die Hölle :) – Ram

0

Ja, Sie können wahrscheinlich, aber es wird sein müssen ziemlich früh in die verwenden page life cycle wenn möglich.

Je nachdem, was die "zwei verschiedenen Szenarien" sind, können Sie jedoch mit einem davon durchkommen. Wenn Sie zum Beispiel Steuerelemente anzeigen/ausblenden (Anmelden, Abmelden usw.) basierend auf dem Authentifizierungsstatus eines Benutzers (anonym, authentifiziert oder in einer bestimmten Rolle/Gruppe), sollten Sie stattdessen das Steuerelement LoginView verwenden. Aus Sicht der Wartung könnte das die Dinge verbessern, wenn es die Anforderungen noch erfüllt.

Edit: Wie unten erwähnt - Sie müssten die Masterseite auf dem PreInit Ereignis ändern.