为什么我们使用@Master类型

本文关键字:@Master 类型 我们 为什么 | 更新日期: 2023-09-27 18:21:00

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

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

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

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

所以,我的问题是,当我们已经在@page指令中定义该内容页在母版页(此处--Site1.master)

为什么我们使用@Master类型

中时,为什么我们使用@MasterType指令

从Microsoft文档中,您正在定义Master属性的类型,该属性允许您访问MasterPage派生类的属性。

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

例如:

this.Master.SomePublicPropertyOfMaster = Value;

使用MyMasterPage类型指定@MasterType指令会在代码隐藏类中产生以下属性定义:

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

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