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


Знакомство с веб-страницами ASP.NET

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

Веб-страницы ASP.NET позволяют создать динамическое содержимое для вашего веб-узла. Со статической страницы HTML (.htm или .html файл), сервер выполняет веб-запрос, читая файл и посылая его обозревателю как есть. По контрасту, когда кто-то запрашивает веб-страницу ASP.NET (aspx-файл), страница выполняется как программа на веб-сервере. Пока страница выполняется, она может выполнить любую задачу, которая требуется вашему веб-узлу, включая вычисление значений, чтение или запись информации баз данных или вызов других программ. В качестве результата страница динамически создает разметку (элементы в HTML или другой язык разметки) и посылает этот динамический результат обозревателю.

В этом разделе предлагаются общие сведения о базовых характеристиках работы веб-страниц ASP.NET в веб-приложениях.

Обратные передачи и циклы передачи

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

Цикл обработки для веб-страницы ASP.NET следующий:

  1. Пользователь запрашивает страницу. (Страница запрашивается при помощи HTTP метода GET.) Страница выполняется первый раз, выполняя предварительную обработку, если Вы запрограммировали ее действовать так.

  2. Страница динамически отсылает разметку обозревателю, которую пользователь видит как веб-страницу, похожую на любую другую страницу.

  3. Пользователь печатает информацию или выбирает ее из доступных вариантов и затем нажимает на кнопку. (Если пользователь нажимает на ссылку вместо кнопки, страница может просто перенаправить на другую страницу и последующая обработка на будет выполняться на первой странице.)

  4. Страница развертывается на веб-сервере. (Обозреватель выполняет метод HTTP POST, который в ASP.NET называется обратной передачей.) В частности, страница передается обратно. Например, если пользователь работает со страницей Default.aspx, нажатие на кнопку на странице отправляет страницу обратно на сервер с целевым объектом Default.aspx.

  5. На веб-сервере страница выполняется снова. Информация, которую пользователь напечатал или выбрал, доступна на странице.

  6. Страница выполняет обработку, которую Вы запрограммировали.

  7. Страница передается обратно в обозреватель.

Этот цикл продолжается до тех пор, пока пользователь работает на странице. Каждый раз, когда пользователь нажимает кнопку, информация на странице отправляется на веб-сервер и страница выполняется снова. Каждый цикл называется циклом обработки. Т. к. обработка страницы выполняется на веб-сервере, каждое действие, которое страница может выполнять, требует цикла обработки на сервере.

ms178125.alert_note(ru-ru,VS.90).gifПримечание.

Веб-страница ASP.NET может выполнять пользовательский сценарий, который не требует цикла обработки на сервере и который можно использовать для проверки ввода данных или для некоторых типов программирования пользовательских интерфейсов. Дополнительные сведения см. в разделе Клиентский сценарий на веб-страницах ASP.NET.

Межстраничная запись данных

В некоторых обстоятельствах нужно, чтобы страница передавала другую страницу, а не себя. Такой процесс называется межстраничной записью данных. Например, можно создать серию страниц, которые выполняются в определенном порядке. Каждая страница может передавать следующую страницу в порядке очередности. Дополнительные сведения см. в разделе Межстраничная запись данных на веб-страницах ASP.NET.

Время существования страницы

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

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

Дополнительные сведения см. в разделе Создание веб-страниц ASP.NET.

Сохранение состояния страницы

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

  • ASP.NET записывает параметры элементов управления (свойств) между циклами передачи, что называется записью состояния элемента управления.

  • ASP.NET предоставляет возможности управления состояниями: можно сохранить собственные переменные и сведения о приложении или сессии между циклами обработки.

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

    ms178125.alert_note(ru-ru,VS.90).gifПримечание.

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

Дополнительные сведения см. в разделе Общие сведения об управлении состоянием ASP.NET.

Программирование веб-страниц ASP.NET

Можно создать код сервера для ваших веб-страниц при помощи различных языков платформы .NET Framework, включая Visual Basic, C# и J#. Веб-страницы ASP.NET могут содержать клиентский сценарий, который выполняется в обозревателе. Некоторые функции ASP.NET генерируют клиентский сценарий и вставляют его на страницу. В этом случае ASP.NET всегда создает ECMAScript (JavaScript) для лучшей функциональности, не зависящей от обозревателя. В дополнение к ним можно добавить свой собственный клиентский сценарий для определенной функциональности. Если Вы это сделаете, можно использовать любой язык клиентского сценария, который совместим с обозревателем, который Вы используете.

Серверные элементы управления

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

ASP.NET предоставляет коллекцию элементов управления, известных как Элементы управления веб-сервера. Серверные элементы управления ASP.NET могут быть похожи на соответствующие элементы форм HTML. Например, элемент управления ASP.NET TextBox похож на HTML-тег <input type="text">. Однако, серверные элементы управления ASP.NET предлагают более широкие возможности программирования, чем элементы HTML. Также серверные элементы управления ASP.NET применимы для более широкого диапазона функций, чем предлагаемый элементами HTML. Среди всех серверных элементов управления, которые можно использовать на веб-странице ASP.NET, есть элемент управления calendar, элементы управления с привязкой к данным, которые отображают списки или таблицы, элемент управления login для повышения безопасности вашего сайта и много других.

Дополнительные сведения см. в разделе Общие сведения о серверных веб-элементах управления ASP.NET.

Страница и события веб-серверных элементов управления

Веб-страница ASP.NET и элементы управления на ней поддерживают модель событий Windows Forms. Например, при нажатии на серверный элемент управления Button на веб-странице ASP.NET, страница отправляется обратно на сервер, создается заново, и возникает событие нажатия на элемент управления. Можно добавить код на страницу, которая отвечает на событие нажатия на элемент управления.

Страница вызывает жизненный цикл событий при ее инициализации, таких, как события Page_Init и Page_Load, которые дают возможность запуска кода при загрузке страницы. (Помните, что страница создается и инициализируется при каждом цикле обработки.) Отдельные элементы управления могут вызывать свои собственные события. Элементы управления button controls вызывают событие Click, элементы управления "флажок" и "переключатель" вызывают событие CheckedChanged и элементы управления "список" и "раскрывающийся список" вызывают событие SelectedIndexChanged. Некоторые элементы управления, такие как Calendar, вызывают более абстрактные события, нежели событие простого нажатия на управляющий элемент. К примеру, когда элемент управления Calendar вызывает событие VisibleMonthChanged, когда пользователь переходит на другой месяц.

Большинство серверных элементов управления ASP.NET поддерживают только несколько событий, которые можно обработать в серверном коде. Чтобы обработать событие, страница должна выполнить цикл обработки, чтобы выбор пользователя можно было отослать на страницу для обработки. Серверные элементы управления не предоставляют высокочастотные события, например onmouseover, потому что при каждом инициировании события необходимо выполнять весь цикл обработки для сервера, что заметно увеличивает время ответа на странице. Однако, можно настроить серверный элемент управления ASP.NET, чтобы вызвать события клиентского сценария, такие как onmouseover. В этом случае элемент управления не передается обратно на сервер, и Вы создаете клиентский сценарий для ответа на события.

Дополнительные сведения о создании и использовании событий и обработчиков событий см. раздел Обработка событий сервера на страницах ASP.NET.

Совместимость с обозревателями

Т. к. обработка веб-страницы ASP.NET происходит на веб-сервере, веб-страница ASP.NET совместима со всеми обозревателями и мобильными устройствами. Страница автоматически заполняет соответствующую обозревателю разметку (XHTML или другой язык разметки) для таких возможностей, как стили и расположение. Также можно создать веб-страницы с элементами управления, которые специально созданы для отображения вывода для определенных устройств, таких как мобильные телефоны. Дополнительные сведения см. в разделе Создание веб-страниц ASP.NET для мобильных устройств.

См. также

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

Общие сведения о серверных веб-элементах управления ASP.NET