2010-02-12 5 views
6

страница может иметь атрибут MasterType, чтобы сделать Page.Master быть сильной типизации:Возможно ли установить MasterType программно?

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

Если все мои страницы наследует определенный класс наследуется System.Web.UI.Page сам, я могу каким-то образом получить доступ к this.Master собственности в нем, так что я мог бы назвать методы главной страницы?

ответ

6

В вашем базовом классе, который наследует все страницы от, просто переопределить Master свойства, что-то вроде этого:

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

или собственного варианта abatishchev в:

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

из класса Sitemaster не доступен для моего абстрактного класса страницы я создал интерфейс ISiteMaster для хранения всего, что мне нужно, от класса SiteMaster. Позвольте мне отредактировать ваш ответ и принять его. – abatishchev

+0

@abatishchev - Без проблем :) рад, что подход работает! –