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.
Теперь создадим новый файл класса (*.vb), который будет содержать обработчик события Click элемента btnSend, назовем его – myForm.vb. Добавим в него наш класс с именем myFormClass, который должен наследовать класс System.Web.UI.Page и создадим необходимый обработчик события Click элемента страницы aspx - btnSend.
В 3-4 строках объявляются размещенные на странице aspx элементы. С 6-9 строку идет процедура обработки события Click элемента btnSend. На то, что эта процедура должна обрабатывать какое-либо событие в 7 строке указывает ключевое слово Handles.
Вот почти все готово, осталась самая малость, добавить ссылку на наш класс в страницу aspx. Для этого немного подкорректируем первую строку aspx-страницы:
Появившийся атрибут src указывает путь к файлу класса (файл может находиться где угодно(!), а атрибут Inherits – указывает класс которому наследуется страница.
Делаем вывод
Теперь страница ASP .NET и созданный нами промежуточный класс должны работать как один файл! При этом страница aspx содержит только элементы дизайна, а файл vb основной код обработки. Согласитесь, так гораздо удобней редактировать и код и дизайн страницы. Хотя, еще раз повторюсь, делить asp-код и HTML вовсе не обязательно, просто система APS .NET предоставляет такую возможность, ну а все остальное зависит от вкуса разработчика ;-) | ||||||||||
|
Всего комментариев: 0 | |