Поделиться через


Общие сведения о классе страницы ASP.NET

Обновлен: Ноябрь 2007

При запросе страницы ASP.NET и отображении разметки в обозревателе выполняется не совсем тот код, который был создан разработчиками для страницы. Во время выполнения ASP.NET создает и компилирует один или несколько классов, которые фактически выполняют задачи, необходимые для запуска страницы. В этом разделе даются общие сведения о коде, который создается во время выполнения.

Создание и выполнение кода класса страницы

Страница ASP.NET выполняется как единое целое, с объединением таких элементов страницы на стороне сервера, как элементы управления, и кода обработки событий, написанного разработчиками. Нет необходимости предварительной компиляции страниц в сборки. ASP.NET динамически компилирует страницы и запускает их, когда они впервые запрашиваются пользователем. Если имеются изменения на странице или в ресурсах, от которых зависит страница, то страница автоматически перекомпилируется. Класс или классы, которые создает компилятор, зависят от того, использует ли страница модель одного файла или модель выделенного кода.

ASP.NET также поддерживает предварительную компиляцию веб-узла с целью улучшения производительности и выполнения проверки ошибок, а также для поддержки развертывания узла. Дополнительные сведения см. в разделе ASP.NET Web Site Precompilation Overview. Предварительная компиляция работает как с моделью одного файла, так и с моделью выделенного кода, и выходные данные компилятора одинаковы для обеих моделей.

Страницы одного файла

В однофайловой странице разметка, элементы на стороне сервера и код обработки событий находятся в одном ASPX-файле. При компиляции страницы компилятор создает и компилирует новый класс, производный от базового класса Page, или другого базового класса, заданного с помощью атрибута Inherits директивы @ Page. Например, если создана новая веб-страница ASP.NET с именем SamplePage1 в корневой папке приложения, то новый класс с именем ASP.SamplePage1_aspx является производным от класса Page. Если страницы находятся во вложенных папках приложения, то имя вложенной папки используется как часть созданного класса. Созданный класс содержит объявления для элементов управления на странице ASPX, а также обработчики событий и другой пользовательский код.

После создания страницы созданный класс компилируется в сборку, сборка загружается в домен приложения, а затем для класса страницы создается и выполняется экземпляр для отображения выходных данных в обозревателе. Если в страницу внесены изменения, которые могут повлиять на созданный класс (например добавлены элементы управления или изменен код), то код скомпилированного класса становится недействительным, и создается новый класс. Дополнительные сведения о компиляции в ASP.NET см. в разделе Общие сведения о компиляции в ASP.NET.

На следующем рисунке показана модель наследования для класса страницы в однофайловой веб-странице ASP.NET:

Иерархия класса, однофайловая страница

Страницы с выделенным кодом

В модели выделенного кода разметка страницы и элементы на стороне сервера, включая объявления элементов управления, находятся в ASPX-файле, тогда как код страницы находится в отдельном файле кода. Файл кода содержит разделяемый класс, т. е. объявление класса с помощью ключевого слова partial (Partial в Visual Basic), показывающее, что он содержит только часть всего кода, составляющего полный класс для страницы. В разделяемом классе добавляется код, который необходим приложению для страницы. Этот код обычно состоит из обработчиков событий, но может содержать любые необходимые методы или свойства.

Модель наследования для страниц выделенного кода немного сложнее, чем для страниц одного файла. Эта модель состоит в следующем:

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

  2. ASPX-файл содержит атрибут Inherits в директиве @ Page, указывающий на разделяемый класс кода программной части.

  3. При компиляции страницы ASP.NET создает разделяемый класс на основе ASPX-файла; этот класс является разделяемым классом файла класса кода программной части. Созданный файл разделяемого класса содержит объявления для элементов управления страницы. Этот разделяемый класс позволяет использование файла кода программной части как части целого класса, без необходимости явного объявления элементов управления.

  4. Наконец, ASP.NET создает другой класс, наследуемый от класса, созданного на шаге 3. Этот второй созданный класс содержит код, необходимый для построения страницы. Второй созданный класс и класс кода программной части компилируются в сборку, которая выполняется для отображения выходных данных в обозревателе.

На следующем рисунке показана модель наследования для класса страницы в веб-странице ASP.NET с выделенным кодом:

Иерархия класса, страница ода программной части

См. также

Основные понятия

Модель кода веб-страниц ASP.NET