Search code examples
c#asp.net.netmaster-pages

Is it possible to set MasterType programmatically?


A page could have an attribute MasterType to make Page.Master to be strong-typed:

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

If all my pages inherits specific class inherited System.Web.UI.Page itself, can I someway get access to this.Master property in it so I could call master page's methods?


Solution

  • In your base class that all pages inherit from, just override the Master property, something like this:

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

    or abatishchev's own variant:

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