2010-02-12 16 views
6

Una pagina potrebbe avere un attributo MasterType per rendere Page.Master essere tipizzato:È possibile impostare MasterType in modo programmatico?

<%@ MasterType VirtualPath="~/Site.master" %> 

Se tutte le mie pagine eredita specifica classe ereditata System.Web.UI.Page stesso, posso in qualche modo ottenere l'accesso a this.Master proprietà in esso così ho potuto chiamare metodi della pagina principale?

risposta

6

Nella tua classe di base che tutte le pagine ereditano da, basta sostituire la proprietà Master, qualcosa di simile:

public new SiteMaster Master 
{ 
    get { return base.Master as SiteMaster ; } 
} 

o proprio la variante di abatishchev:

public new ISiteMaster Master 
{ 
    get { return base.Master as ISiteMaster; } 
} 
+0

a causa della classe SiteMaster non è accessibile per la mia classe di pagina astratta ho creato un'interfaccia ISiteMaster per contenere tutto ciò di cui ho bisogno dalla classe SiteMaster. Fammi modificare la tua risposta e accettarla. – abatishchev

+0

@abatishchev - Nessun problema :) felice che l'approccio funzioni! –

Problemi correlati