2010-02-12 64 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 2010-02-12 07:09:13

+0

@abatishchev - 没问题:)很高兴这种方法有效! – 2010-02-12 11:18:11

相关问题