Рейтинг блогов

HTML минус ASP .NET: Как отделить ASP-код от HTML

дата добавления: 23 августа 2005 / 18:53, просмотров: 6470, комментариев: 0
Статейка старая, еще со времен первых версий ASP .NET, так что сильно не пугайтесь ;-) На небольшие косяки в тексте, также не обращайте внимание.

 

Как вы знаете, основной код обрабатываемый сервером на страницах 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 предоставляет такую возможность, ну а все остальное зависит от вкуса разработчика ;-)

 

Удачи! Будут вопросы, пишите, постараюсь ответить.

 

Немиро Алексей
23 августа 2005 года

Комментарии (всего: 0)

Добавить комментарий rss

В этой записи пока еще нет комментариев...

Добавить комментарий

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