Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Статьи - Алексей Немиро -

ASP .NET, Visual Basic .NET - Общие вопросы

Все статьи / Общие вопросы

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

Автор: Алексей Немиро | добавлено: 02.03.2010, 22:31 | просмотров: 2982 (3+) | комментариев: 0 | рейтинг: *x1

Внимание, данная статья актуальна только для первых версиях ASP .NET. А так же статья может быть интересна тем, кто хочет разобраться в принципах работы ASP .NET и писать код без использования IDE.


Как вы знаете, основной код обрабатываемый сервером на страницах 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 года

Copyright © Nemiro AS, 2005

+ Добавить в избранное
    ? Помощь
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

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


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики