Usługa AJAX korzystająca z typów złożonych — przykład
Przykład ComplexTypeAjaxService pokazuje, jak używać programu Windows Communication Foundation (WCF) do utworzenia ASP.NET asynchronicznej usługi JavaScript i XML (AJAX), która tworzy wystąpienia typów złożonych i wysyła je między usługą i klientem jako javaScript Object Notation (JSON). Dostęp do usługi AJAX można uzyskać przy użyciu kodu JavaScript z poziomu klienta przeglądarki internetowej. Ten przykład jest oparty na przykładowej usłudze AJAX w warstwie Podstawowa.
Obsługa technologii AJAX w programie WCF jest zoptymalizowana pod kątem używania z ASP.NET AJAX za pomocą kontrolki ScriptManager . Aby zapoznać się z przykładem używania programu WCF z ASP.NET AJAX, zobacz przykłady AJAX.
Uwaga
Procedura instalacji i instrukcje kompilacji dla tego przykładu znajdują się na końcu tego tematu.
Usługa w poniższym przykładzie jest usługą WCF bez kodu specyficznego dla technologii AJAX. WebGetAttribute Ponieważ atrybut nie jest stosowany, używany jest domyślny czasownik HTTP ("POST"). Usługa ma jedną operację , DoMath
która zwraca typ złożony o nazwie MathResult
. Typ złożony jest standardowym typem kontraktu danych, który również nie zawiera kodu specyficznego dla AJAX.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Utwórz punkt końcowy AJAX w usłudze przy użyciu elementu , podobnie jak w przykładzie WebScriptServiceHostFactorypodstawowa usługa AJAX.
Strona sieci Web klienta, ComplexTypeClientPage.aspx zawiera ASP.NET i kod JavaScript w celu wywołania usługi, gdy użytkownik kliknie przycisk Wykonaj obliczenia na stronie. Kod służący do wywoływania usługi konstruuje treść JSON i wysyła go przy użyciu protokołu HTTP POST, podobnie jak w przykładzie AJAX Service Using HTTP POST (Usługa AJAX przy użyciu kodu HTTP POST ).
Po pomyślnym wywołaniu usługi można uzyskać dostęp do poszczególnych elementów członkowskich danych (sum
, difference
i product
quotient
) w wynikowym obiekcie 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;
}
Aby skonfigurować, skompilować i uruchomić przykład
Upewnij się, że wykonano procedurę instalacji jednorazowej dla przykładów programu Windows Communication Foundation.
Skompiluj rozwiązanie ComplexTypeAjaxService.sln zgodnie z opisem w temacie Building the Windows Communication Foundation Samples (Tworzenie przykładów programu Windows Communication Foundation).
Przejdź do
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
adresu (nie otwieraj ComplexTypeClientPage.aspx w przeglądarce z katalogu projektu).