18

如果我们有一个母版页和一个内容页。所以内容页 @Page 指令看起来像

<%@ Page Language="C#" MasterPageFile="~/Site1.Master" .... />

因此,为了访问内容页中的母版页控件,我们必须使用

<%@ MasterType VirtualPath="~/Site1.Master" %>

所以,我的问题是,当我们已经在@page 指令中定义此内容页面位于母版页中时,为什么要使用@MasterType 指令(这里--Site1.Master)

4

2 回答 2

25

Microsoft Docs中,您正在定义Master属性的类型,它允许您访问 MasterPage 派生类的属性。

提供一种在从 Master 属性访问母版页时创建对 ASP.NET 母版页的强类型引用的方法。

举个例子:

this.Master.SomePublicPropertyOfMaster = Value;
于 2012-01-20T19:24:51.207 回答
3

使用类型指定 @MasterType 指令会MyMasterPage导致代码隐藏类中的以下属性定义:

public new MyMasterPage Master {
  get {
    return ({MyMasterPage})base.Master;
  }
}

此属性定义由类的BuildMiscClassMembers方法创建TemplateControlCodeDomTreeGenerator

于 2019-06-13T23:36:19.130 回答