2010-02-12 18 views
6

Una página puede tener un atributo MasterType hacer Page.Master ser fuerte-mecanografiadas:¿Es posible establecer MasterType programáticamente?

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

Si todas mis páginas hereda clase específica heredó System.Web.UI.Page sí, puedo de alguna manera tener acceso a this.Master propiedad en él, así que podría llamar métodos de la página maestra?

Respuesta

6

En su clase base que todas las páginas heredan de, simplemente reemplazar la propiedad Master, algo como esto:

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

o propia variante de abatishchev:

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

debido clase SiteMaster no es accesible para mi clase de página abstracta, creé una interfaz ISiteMaster para contener todo lo que necesito de la clase SiteMaster. Déjame editar tu respuesta y aceptarla. – abatishchev

+0

@abatishchev - No hay problema :) ¡me alegro de que el enfoque funcione! –

Cuestiones relacionadas