Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
В примере 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;
}
Настройка, сборка и запуск примера
Убедитесь, что вы выполнили процедуру настройки One-Time для образцов Windows Communication Foundation.
Создайте решение ComplexTypeAjaxService.sln, как описано в разделе "Создание примеров Windows Communication Foundation".
Перейдите к
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx(не открывайте ComplexTypeClientPage.aspx в браузере из каталога проекта).