Beispiel für AJAX-Dienst mit komplexen Typen

In diesem Beispiel wird veranschaulicht, wie mit Windows Communication Foundation (WCF) ein AJAX-Dienst (ASP.NET Asynchronous JavaScript and XML) erstellt werden kann, der Instanzen komplexer Typen erstellt und diese zwischen Dienst und Client als Daten im Datenformat Javascript Object Notation (JSON) sendet. Sie können auf einen AJAX-Dienst zugreifen, indem Sie JavaScript-Code von einem Webbrowserclient verwenden. Dieses Beispiel baut auf dem Einfacher AJAX-Dienst-Beispiel auf.

Tipp

Zum Erstellen und Ausführen dieses Beispiels muss .NET Framework, Version 3.5 installiert sein. Zum Öffnen des Projekts und der Projektmappendateien ist Visual Studio 2008 erforderlich.

Die AJAX-Unterstützung in WCF ist zur Verwendung mit ASP.NET AJAX über das ScriptManager-Steuerelement optimiert. Ein Beispiel für das Verwenden von WCF mit ASP.NET AJAX finden Sie unter AJAX-Beispiele.

Tipp

Die Setupprozedur und die Buildanweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Der Dienst im folgenden Beispiel ist ein WCF-Dienst ohne AJAX-spezifischen Code. Da kein WebGetAttribute-Attribut angewendet wird, wird das standardmäßige HTTP-Verb ("POST") verwendet. Der Dienst hat einen Vorgang, DoMath, der einen komplexen Typ namens MathResult zurückgibt. Der komplexe Typ ist ein Standarddatenvertragstyp, der ebenfalls keinen AJAX-spezifischen Code enthält.

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

Erstellen Sie im Dienst mithilfe der WebHttpBinding-Standardbindung und dem <enableWebScript>-Verhalten in der Dienstkonfiguration einen AJAX-Endpunkt, ähnlich wie im Beispiel Einfacher AJAX-Dienst.

Die Clientwebseite ComplexTypeClientPage.aspx enthält ASP.NET-Code und JavaScript-Code zum Aufrufen des Diensts, wenn der Benutzer auf der Seite auf die Schaltfläche Berechnung durchführen klickt. Im zum Aufrufen des Diensts verwendeten Code wird ein JSON-Text erstellt und mit HTTP-POST gesendet, ähnlich wie im Beispiel AJAX-Dienst mit HTTP POST.

Wenn der Dienstaufruf erfolgreich war, können Sie im resultierenden JaveScript-Objekt auf die einzelnen Datenmember (sum, difference, product und quotient) zugreifen.

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;
}

So richten Sie das Beispiel ein, erstellen es und führen es aus

  1. Stellen Sie sicher, dass Sie die Beispiele zum einmaligen Setupverfahren für Windows Communication Foundation ausgeführt haben.

  2. Erstellen Sie die Projektmappe ComplexTypeAjaxService.sln, wie in Erstellen der Windows Communication Foundation-Beispiele beschrieben.

  3. Navigieren Sie zu https://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (öffnen Sie ComplexTypeClientPage.aspx nicht aus dem Projektverzeichnis im Browser).

Siehe auch

Aufgaben

Einfacher AJAX-Dienst

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.