При выполнении страницы ASP.NET осуществляется её жизненный цикл, во время которого исполняется ряд шагов обработки. В частности: инициализация, определение элементов управления, восстановление и поддержание рабочего состояния, выполнение кода обработчика событий, а также отрисовка.
Общие этапы жизненного цикла страницы |
|
---|---|
Этап |
Описание |
Запрос страницы |
Запрос страницы происходит перед началом жизненного цикла страницы. При запросе страницы пользователем ASP.NET определяет, нужно ли обрабатывать и компилировать страницу (до начала жизненного цикла страницы), или отправить в ответ на запрос кэшированную версию страницы, не запуская ее обработку. |
Запуск |
На начальном этапе устанавливаются свойства страницы, например Request и Response. На этом этапе страница также определяет, является ли запрос обратной передачей или новым запросом, и устанавливает свойство IsPostBack. Кроме этого, на этом этапе устанавливается свойство страницы UICulture. |
Инициализация страницы |
Во время инициализации страницы элементы управления страницы являются доступными, устанавливаются все свойства элементов управления UniqueID. На странице также применяются темы. Если текущий запрос является обратным запросом, данные обратного запроса не загружены, а значения свойств элементов управления не восстановлены к значениям в состоянии просмотра. |
Загрузка |
Во время загрузки, если текущий запрос является обратным запросом, в свойства элементов управления будут переданы данные, восстановленные из состояния просмотра и состояния управления. |
Проверка |
Во время проверки вызывается метод Validate всех проверяющих элементов управления, который устанавливает свойство IsValid отдельных проверяющих элементов управления и страницы. |
Обработка событий обратного запроса |
Если запрос является обратным, вызывается любой из обработчиков событий. |
Отрисовка |
Перед отрисовкой производится сохранение состояния просмотра страницы и всех элементов управления. На этапе отрисовки страница вызывает метод Render для каждого элемента управления, предоставляя модуль записи текста, который записывает полученные данные в OutputStream свойства страницы Response. |
Формы ASP.NET WebForms
Исходный код HTML для веб-формы (файла .aspx) обычно начинается с тега @Page, который определяет параметры данной страницы. Поэтому в большинстве ситуаций на сайтах ASP.NET предусмотрены страницы с формами HTML, где размещены элементы управления, которые выполняют прием информации от пользователей. В тегах <head>, <form> и др. атрибуту runat присваивается значение server, указывающее на то, что код элемента должен выполняться на стороне сервера, а не на стороне клиента. В ASP.NET слово "форма" (form) употребляется в двух значениях. Во-первых, это слово употребляется для обозначения самой Web-страницы с расширением .aspx (веб-форма). Во-вторых, это слово употребляется для обозначения обычных форм HTML, которые размещаются на страницах HTML и служат контейнерами для элементов управления. В этом разделе речь пойдет именно о формах HTML.
В большинстве ситуаций создавать форму на странице ASP.NET вручную нет необходимости. Обычно она создается автоматически при перетаскивании из ToolBox на веб-страницу любого элемента управления.
Формы ASP.NET MVC
Платформа ASP.NET MVC включает вспомогательные методы, упрощающие отрисовку HTML в представлении:
- ActionLink — ссылка на метод действия.
- BeginForm — отмечает начало формы и дает ссылку на метод действия, отрисовывающий форму.
- CheckBox — отрисовывает флажок.
- DropDownList — отрисовывает раскрывающийся список.
- Hidden — встраивает данные в форму, но не отображает их пользователям.
- ListBox — отрисовывает список.
- Password — отрисовывает текстовое поле для ввода пароля.
- RadioButton — отрисовывает переключатель.
- TextArea — отрисовывает текстовую область (многострочное текстовое поле).
- TextBox — отрисовывает текстовое поле.
Структуры ASP.NET WebForms и ASP.NET MVC приложений
ASP.NET WebForms |
ASP.NET MVC |
---|---|
Сильные стороны |
|
|
|
Слабые стороны |
|
|
|
Возможности |
|
|
|
Угрозы |
|
|
|