Первый пример ASP.NET AJAX: Hello User

Чтобы проверить, насколько успешно прошла установка ASP.NET AJAX, и увидеть платформу в действии, закончим эту главу примером создания небольшого приложения. В этом примере страница ожидает ввода имени пользователя, отправляет его серверу (в фоновом режиме, с помощью объекта XMLHttpRequest), получает обратно имя, дополненное некоторым текстом, и выводит его перед пользователем. Данный пример наглядно демонстрирует, насколько просто создаются приложения, обладающие функциональными возможностями ASP.NET AJAX.

В VWD создайте новый проект веб?сайта из шаблона ASP.NET AJAX. Затем в корневом каталоге веб?сайта создайте новую веб?службу (с помощью файла?шаблона веб?службы) с именем WebService.asmx. В файле .asmx реализуйте простой веб?метод, который принимает единственный строковый параметр, скопировав в файл программный код из примера 1.1. Обратите внимание на обязательный атрибут [ScriptServices], который фактически определяется платформой ASP.NET AJAX (в пространстве имен System.Web.Script.Services).

Пример 1.1. Веб-служба

WebService.asmx
<%@ WebService Language="C#" Class="WebService" %>
using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
[WebService(Namespace = "http://hauser?wenz.de/AspNetAJAX/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {
[WebMethod]
public string sayHello(string name) {
return "Hello " + name + ", says the server!";
}
}

Теперь попробуйте обратиться к этой веб-службе из веб-броузера, добавив символы /js в конец адреса URL.


При обращении по такому URL возвращается программный код JavaScript, который фактически представляет собой реализацию класса?посредника JavaScript. Самое важное здесь заключается в том, что этот программный код создает переменную WebService, которая обеспечивает взаимодействие с веб-службой.

Можно заметить, что шаблон ASP.NET AJAX уже создал файл Default.aspx, содержимое которого мы рассмотрим ниже. Следующий фрагмент – это текст, содержащийся в данном файле:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"
Inherits="_Default" %>
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> Untitled Page

(body)




(/body)


Первое, на что следует обратить внимание, – это новый элемент управления: . Этот элемент управления является основой любой веб?страницы с поддержкой ASP.NET AJAX.

Откройте файл Default.aspx в текстовом редакторе и добавьте в элемент ScriptManager ссылку на веб?службу, как показано ниже.


При запуске страницы благодаря этой ссылке будет сгенерирован объект-посредник JavaScript, с помощью которого страница будет способна использовать программный код, динамически сгенерированный программным кодом веб-службы:

(asp:ScriptManager ID="ScriptManager1" runat="server")


(/asp:ScriptManager)

Теперь необходимо вставить в страницу несколько HTML-элементов. Добавьте текстовое поле ввода и кнопку в существующий элемент
(внутри элемента
, если вы собираетесь придерживаться требований стандарта XHTML):




Обработчик события кнопки вызывает функцию JavaScript с именем callService() и передает ей ссылку на текущую форму. Метод callService() – это та самая точка в сценарии, где происходит обращение к веб?службе. Чтобы вызвать метод веб?службы sayHello(), сценарий
должен воспользоваться объектом?посредником, который доступен через автоматически созданную переменную с именем WebService.


(Имя WebService соответствует имени класса веб?службы, созданного ранее.)

Метод sayHello() ожидает получить не только строку, но и три ссылки на функции?обработчики: первая вызывается в случае успешного исполнения веб?службы (callComplete), вторая при появлении ошибки (callError) и третья по истечении предельного времени ожидания ответа (в данном примере мы используем только первые две функции).

Затем поместите следующий программный код в клиентский элемент

(body)
ID="ScriptManager1"
runat="server">





onclick="callService(this.form);" />


(/body)


Запустите приложение (клавишей F5 или Ctrl+F5 в VWD).


В окне броузера можно увидеть вполне предсказуемый результат, причем не только в Internet Explorer, но и в любом другом броузере, отвечающем нашим требованиям. Щелкните на кнопке несколько раз и убедитесь,
что обновления страницы не происходит, хотя страница выполняет обмен данными с веб?службой на стороне сервера. .



Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
ASP.NET AJAX и Ajax
ASP.NET AJAX и ASP.NET
Пакеты ASP.NET AJAX
Подготовка и установка ASP.NET AJAX
Структура и архитектура ASP.NET AJAX

Вернуться в раздел: ASP.NET AJAX / ASP.NET AJAX, Ajax и ASP.NET