Пример применения службы AJAX с использованием сложных типов

В примере ComplexTypeAjaxService показано, как использовать Windows Communication Foundation (WCF) для создания службы ASP.NET асинхронной службы JavaScript и XML (AJAX), которая создает экземпляры сложных типов и отправляет их между службой и клиентом в виде нотации объектов JavaScript (JSON). Доступ к службе AJAX можно получить с помощью кода JavaScript из клиента веб-браузера. Этот пример основан на примере базовой службы AJAX .

Поддержка AJAX в WCF оптимизирована для использования с ASP.NET AJAX с помощью ScriptManager элемента управления. Пример использования WCF с ASP.NET AJAX см. в примерах AJAX.

Замечание

Процедура установки и инструкции по сборке для этого примера находятся в конце этого раздела.

Служба в следующем примере — это служба WCF без кода AJAX. WebGetAttribute Так как атрибут не применяется, используется http-команда ПО умолчанию ("POST"). Служба имеет одну операцию, DoMathкоторая возвращает сложный тип с именем MathResult. Сложный тип — это стандартный тип контракта данных, который также не содержит код, зависящий от AJAX.

[DataContract]
public class MathResult
{
    [DataMember]
    public double sum;
    [DataMember]
    public double difference;
    [DataMember]
    public double product;
    [DataMember]
    public double quotient;
}

Создайте конечную точку AJAX в службе с помощью WebScriptServiceHostFactory, аналогично тому, как это сделано в примере базовой службы AJAX.

Веб-страница клиента ComplexTypeClientPage.aspx содержит ASP.NET и код JavaScript для вызова службы, когда пользователь нажимает кнопку "Выполнить вычисление " на странице. Код для вызова службы создает текст JSON и отправляет его с помощью HTTP POST, аналогичной службе AJAX с помощью примера HTTP POST .

После успешного вызова службы вы можете получить доступ к отдельным элементам данных (sumи differenceproductquotient) в результирующем объекте JavaScript.

function onSuccess(mathResult){
     document.getElementById("sum").value = mathResult.sum;
     document.getElementById("difference").value = mathResult.difference;
     document.getElementById("product").value = mathResult.product;
     document.getElementById("quotient").value = mathResult.quotient;
}

Настройка, сборка и запуск примера

  1. Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.

  2. Создайте решение ComplexTypeAjaxService.sln, как описано в разделе "Создание примеров Windows Communication Foundation".

  3. Перейдите к http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (не открывайте ComplexTypeClientPage.aspx в браузере из каталога проекта).

См. также