почему мы используем тип @Master? - PullRequest
13 голосов
/ 20 января 2012

если у нас есть главная страница и страница содержимого. Поэтому директива @Page для страницы содержимого выглядит как

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

так, чтобы получить доступ к элементам управления главной страницы на странице контента, мы должны использовать

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

Итак, мой вопрос заключается в том, почему мы используем директиву @MasterType, когда мы уже определили в директиве @page, что эта страница контента находится на главной странице (здесь - Site1.Master)

Ответы [ 2 ]

22 голосов
/ 20 января 2012

Из Документов Microsoft вы определяете тип свойства Master, которое позволяет получить доступ к свойствам вашего производного класса MasterPage.

Предоставляет способ созданиястрого типизированная ссылка на главную страницу ASP.NET при доступе к главной странице из свойства Master.

Например:

this.Master.SomePublicPropertyOfMaster = Value;
0 голосов
/ 14 июня 2019

Указание директивы @ MasterType с типом MyMasterPage приводит к следующему определению свойства в коде класса:

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

Определение этого свойства создается методом BuildMiscClassMembers класса TemplateControlCodeDomTreeGenerator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...