C# 为什么我们使用@Master type?

C# 为什么我们使用@Master type?,c#,asp.net,master-pages,content-pages,C#,Asp.net,Master Pages,Content Pages,如果我们有母版页和内容页,那么content page@page指令如下所示 <%@ Page Language="C#" MasterPageFile="~/Site1.Master" .... /> 所以,为了访问内容页中的母版页控件,我们必须使用 <%@ MasterType VirtualPath="~/Site1.Master" %> 因此,我的问题是,当我们已经在@page指令中定义此内容页位于母版页(此处为--Site1.master)中时,为什

如果我们有母版页和内容页,那么content page@page指令如下所示

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

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

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

因此,我的问题是,当我们已经在@page指令中定义此内容页位于母版页(此处为--Site1.master)中时,为什么我们使用@MasterType指令呢?

您正在定义
母版
属性的类型,它允许您访问母版页派生类的属性

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

例如:

this.Master.SomePublicPropertyOfMaster = Value;

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

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

此属性定义是通过TemplateControlCodeDomTreeGenerator类的方法创建的。

@Lloyd..请告诉我强类型是什么意思?因为我是编程新手,所以我对它一无所知…这意味着类型是显式声明的,因此,您不需要强制转换它,即:MyMasterPage masterPage=(MyMasterPage)this.masterPage.Link已失效。试试这个,