是否可以通过编程方式设置MasterType?

aba*_*hev 6 .net c# asp.net master-pages

一个页面可以有一个属性MasterType,使Page.Master被强类型:

<%@ MasterType VirtualPath="~/Site.master" %>
Run Code Online (Sandbox Code Playgroud)

如果我的所有页面都继承了继承System.Web.UI.Page自己的特定类,this.Master那么我是否可以访问其中的属性,以便我可以调用母版页的方法?

Nic*_*ver 6

在所有页面继承的基类中,只需覆盖Master属性,如下所示:

public new SiteMaster Master
{
  get { return base.Master as SiteMaster ; }
}
Run Code Online (Sandbox Code Playgroud)

或abatishchev自己的变体:

public new ISiteMaster Master
{
  get { return base.Master as ISiteMaster; }
}
Run Code Online (Sandbox Code Playgroud)