如果我们有一个母版页和一个内容页面。那么内容页面@Page指令看起来像
<%@ Page Language="C#" MasterPageFile="~/Site1.Master" .... />
因此,为了访问内容页面中的母版页控件,我们必须使用
<%@ MasterType VirtualPath="~/Site1.Master" %>
所以,我的问题是,当我们在@page指令中定义此内容页面位于母版页(此处为Site1.Master)时,我们使用@MasterType指令
答案 0 :(得分:22)
从MSDN开始,您定义的是MasterPage的类型,而不仅仅是Master类的基类类型,它还允许您直接访问MasterTypes属性。
提供一种在从Master属性访问母版页时创建对ASP.NET母版页的强类型引用的方法。
this.Master.SomePublicPropertyOfMaster = Value;
答案 1 :(得分:0)
用类型MyMasterPage
指定@ MasterType指令会在类后面的代码中产生以下属性定义:
public new MyMasterPage Master {
get {
return ({MyMasterPage})base.Master;
}
}
此属性定义是通过TemplateControlCodeDomTreeGenerator
类的BuildMiscClassMembers方法创建的。