Страница ASP.NET состоит из нескольких серверных элементов управления, а также элементов управления HTML, текста и изображений. Конфиденциальные данные со страницы и состояния различных элементов управления на странице хранятся в скрытых полях, которые формируют контекст запроса этой страницы.
ASP.NET runtime контролирует связь между экземпляром страницы и ее состоянием. Страница ASP.NET является объектом страницы или наследуется от него.
Все элементы управления на страницах также являются объектами связанного класса элементов управления, унаследованных от родительского класса Control. Когда страница запускается, создается экземпляр страницы объекта со всеми элементами управления его содержимым.
Страница ASP.NET также является файлом на стороне сервера, сохраненным с расширением .aspx. Он имеет модульный характер и может быть разделен на следующие основные разделы:
- Директивы страницы
- Раздел кода
- Макет страницы
Директивы страницы
Директивы страницы устанавливают среду для запуска страницы. Директива @Page определяет специфичные для страницы атрибуты, используемые парсером и компилятором страниц ASP.NET. В директивах страницы указывается, как должна обрабатываться страница, и какие предположения необходимо предпринять в отношении этой страницы.
Он позволяет импортировать пространства имен, загружать сборки и регистрировать новые элементы управления с именами пользовательских тегов и префиксами пространства имен.
Раздел кода
В разделе кода представлены обработчики для страницы и события управления, а также другие необходимые функции. Мы упоминали, что ASP.NET следует объектной модели. Теперь эти объекты вызывают события, когда некоторые события происходят в пользовательском интерфейсе, например, когда пользователь нажимает кнопку или перемещает курсор. Вид ответа, на который эти события должны отвечать взаимностью, кодируется в функциях обработчика событий. Обработчики событий — это не что иное, как функции, связанные с элементами управления.
Раздел кода или файл с кодом содержит все эти процедуры обработчика событий и другие функции, используемые разработчиком. Код страницы может быть предварительно скомпилирован и развернут в виде двоичной сборки.
Макет страницы
Макет страницы обеспечивает интерфейс страницы. Он содержит серверные элементы управления, текст, встроенный JavaScript и HTML-теги.
В следующем фрагменте кода приведен пример страницы ASP.NET, объясняющей директивы страницы, раздел кода и макет страницы, написанные на C #:
<!-- directives --> <% @Page Language="C#" %> <!-- code section --> <script runat="server"> private void convertoupper(object sender, EventArgs e) { string str = mytext.Value; changed_text.InnerHtml = str.ToUpper(); } </script> <!-- Layout --> <html> <head> <title> Change to Upper Case </title> </head> <body> <h3> Conversion to Upper Case </h3> <form runat="server"> <input runat="server" id="mytext" type="text" /> <input runat="server" id="button1" type="submit" value="Enter..." OnServerClick="convertoupper"/> <hr /> <h3> Results: </h3> <span runat="server" id="changed_text" /> </form> </body> </html>
Скопируйте этот файл в корневой каталог веб-сервера. Обычно это c: \ iNETput \ wwwroot. Откройте файл из браузера, чтобы выполнить его, и он выдаст следующий результат:
Использование Visual Studio IDE
Давайте разработаем тот же пример, используя Visual Studio IDE. Вместо того, чтобы вводить код, вы можете просто перетащить элементы управления в представление конструктора:
Файл содержимого создается автоматически. Все, что вам нужно добавить, это процедура Button1_Click, которая выглядит следующим образом:
protected void Button1_Click(object sender, EventArgs e) { string buf = TextBox1.Text; changed_text.InnerHtml = buf.ToUpper(); }
Код файла содержимого имеет следующий вид:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="firstexample._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title> Untitled Page </title> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="TextBox1" runat="server" style="width:224px"> </asp:TextBox> <br /> <br /> <asp:Button ID="Button1" runat="server" Text="Enter..." style="width:85px" onclick="Button1_Click" /> <hr /> <h3> Results: </h3> <span runat="server" id="changed_text" /> </div> </form> </body> </html>
Выполните пример, щелкнув правой кнопкой мыши на представлении дизайна и выбрав «Просмотреть в браузере» во всплывающем меню. Это приводит к следующему результату: