Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_CSharp_5.docx
Скачиваний:
32
Добавлен:
11.11.2019
Размер:
475.45 Кб
Скачать

5.3. Структура aspx-файла

Задачей параграфа является указание элементов, образующих файл разметки страницы .aspx. Напомним, что наряду с файлом разметки страницы, составной частью страницы является, как правило, и файл Code Behind.

Рассмотрим пример простой aspx-страницы.

<%-- 1. Директива страницы --%>

<%@ Page Language="C#" AutoEventWireup="true"

CodeBehind="Default.aspx.cs" Inherits="WebApp._Default" %>

<%-- 4. Блок серверного кода --%>

<script runat="server">

protected void btnSend_Click(object sender, EventArgs e)

{

tbxName.Text = tbxName.Text.ToUpper();

}

</script>

<%-- 3. Обычный HTML --%>

<html>

<body>

<%-- 5. Блок рендерного кода --%>

<% for (int i = 0; i < 10; i++) Response.Write("Hello"); %>

<form id="form1" runat="server">

<div>

Input name:

<%-- 2. Серверные элементы управления --%>

<asp:TextBox ID="tbxName" runat="server" />

<asp:Button ID="btnSend" runat="server"

OnClick="btnSend_Click" />

</div>

</form>

</body>

</html>

Выделим следующие элементы страницы.

1. Директивы страницы.

Директивы используются для установки отдельных параметров страницы, таких как язык программирования для кода страницы или подключение пространства имен. Директива начинается с символа @, за которым следует имя директивы и набор атрибутов. Директивы могут размещаться в любом месте страницы, но вне HTML-элементов. Как правило, директивы помещают в начале страницы.

2. Серверные элементы управления и серверная форма.

Серверные элементы управления описываются с помощью специальных тэгов с обязательным атрибутом runat="server". Они соответствуют полям в классе страницы. Серверный элемент управления обладает набором свойств, установка которых возможна на странице как задание соответствующий атрибутов. Все серверные элементы должны быть размещены в пределах серверной формы (<form runat="server">).

3. HTML-код. HTML-код не обрабатывается процессом ASP.NET специальным образом, а сразу пересылается клиенту. Выводом HTML-кода занимается специальный внутренний метод класса, который соответствует странице.

4. Блоки серверного кода. Это блоки, обрамленные тэгом <script> с обязательным атрибутом runat="server". Блоки серверного кода транслируются в члены класса, соответствующего странице. В приведенном примере класс будет содержать метод btnSend_Click(). Отметим, что наличие блоков серверного кода на странице противоречит концепции Code Behind. Согласно данной концепции код, связанный со страницей, должен быть помещен в отдельный класс, от которого наследуется класс страницы.

5. Блоки рендерного кода. Блоки рендерного кода используются для генерации потока вывода. При обработке на сервере блоки рендерного кода помещаются непосредственно в метод, выполняющий вывод HTML-кода. Если блок рендерного кода записывается в форме <%= выражение %>, то в метод вставляется вывод вычисленного выражения.

Кроме упомянутых выше элементов, страница ASP.NET может содержать комментарии, блоки привязки данных (они будут подробно рассмотрены далее), клиентские скрипты.