Главная » 2011 » Октябрь » 6 » HTML минус ASP .NET: Как отделить ASP-код от HTML
13:25
HTML минус ASP .NET: Как отделить ASP-код от HTML

Как вы знаете, основной код обрабатываемый сервером на страницах ASP .NET может находиться только в блоках <SCRIPT>. Если вы работали с классическим ASP, то наверное помните, что абсолютно любой asp-код можно было использовать в любой части страницы, будь то объявление переменных (хотя это вовсе и необязательно) или даже функций. В результате чего получался некий винегрет из ASP, HTML, а иногда и с элементами Java(VB)Script. Разобраться в таком коде, даже с бутылкой «огненной воды», было очень не просто. Именно поэтому ASP .NET требует размещения основного кода на страницах в блоках <SCRIPT>. Требует, но не обязывает, и предлагает разработчику другой вариант – размещать серверный код в отдельном файле. Да, да, это не опечатка, ASP .NET действительно позволяет практически полностью отделить HTML от asp-кода, причем разницы в работе asp-приложения никакой не будет. О том как это сделать, я сейчас и постараюсь рассказать.

 

Кодовые формы

 

Кодовые формы предоставляют разработчику возможность полностью, либо частично (пожеланию разработчика) отделить код ASP .NET от HTML. Кодовая форма – это отдельный файл *.vb, который наследован классу System.Web.UI.Page, который в свою очередь дает определение для всех страниц aspx и может быть наследован непосредственно страницей aspx. Т.е. кодовая форма является промежуточным классом между классом System.Web.UI.Page и страницей aspx.

 

Кодовые формы

 

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

 

Первым делом, первым делом...

 

Нет, рассказывать азы самолетостроения я сейчас не буду (может как-нибудь в другой раз ;-) ..), сейчас я расскажу, а точнее покажу, как все, о чем было написано выше, делается.

Для начала, сделаем обычный файл aspx, содержащий одно текстовое поле с именем txtName и кнопку – btnSend.

 

 

Файл aspx

01:

02:

03:

04:

05:

06:

07:

08:

09:

10:

11:

12:

13:

14:

15:

16:

<%@ Page Language="vb" %>

<HTML>

  <HEAD>

    <title>Обычная страница ASP .NET</title>

  </HEAD>

  <body>

    <form id="frmForm" method="post" runat="server">

      <P>Введите Ваше имя:

        <asp:TextBox id="txtName" runat="server" />nbsp;

        <asp:Button id="btnSend"

        Text="Отправить"

        runat="server" />

      </P>

    </form>

  </body>

</HTML>

 

Теперь создадим новый файл класса (*.vb), который будет содержать обработчик события Click элемента btnSend, назовем его – myForm.vb. Добавим в него наш класс с именем myFormClass, который должен наследовать класс System.Web.UI.Page и создадим необходимый обработчик события Click элемента страницы aspx - btnSend.

 

 

Файл myForm.vb

01:

02:

03:

04:

05:

06:

07:

08:

09:

10:

Public Class myFormClass

  Inherits System.Web.UI.Page

  Protected WithEvents btnSend As System.Web.UI.WebControls.Button

  Protected WithEvents txtName As System.Web.UI.WebControls.TextBox

 

  Private Sub btnSend_Click(ByVal sender As System.Object,

              ByVal e As System.EventArgs) Handles btnSend.Click

    Response.Write("<P>Здравствуйте " & txtName.Text & "!</P>")

  End Sub

End Class

 

В 3-4 строках объявляются размещенные на странице aspx элементы. С 6-9 строку идет процедура обработки события Click элемента btnSend. На то, что эта процедура должна обрабатывать какое-либо событие в 7 строке указывает ключевое слово Handles.

 

Вот почти все готово, осталась самая малость, добавить ссылку на наш класс в страницу aspx. Для этого немного подкорректируем первую строку aspx-страницы:

 

01:

<%@ Page Language="vb" src="myForm.vb" Inherits="myFormClass" %>

 

Появившийся атрибут src указывает путь к файлу класса (файл может находиться где угодно(!), а атрибут Inherits – указывает класс которому наследуется страница.

 

Делаем вывод

 

Теперь страница ASP .NET и созданный нами промежуточный класс должны работать как один файл! При этом страница aspx содержит только элементы дизайна, а файл vb основной код обработки. Согласитесь, так гораздо удобней редактировать и код и дизайн страницы. Хотя, еще раз повторюсь, делить asp-код и HTML вовсе не обязательно, просто система APS .NET предоставляет такую возможность, ну а все остальное зависит от вкуса разработчика ;-)

Просмотров: 988 | Добавил: Шаке | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]