Freigeben über


AJAX-Dienst mit komplexen Typen (Beispiel)

Im Beispiel "ComplexTypeAjaxService " wird veranschaulicht, wie Sie mithilfe von Windows Communication Foundation (WCF) einen ASP.NET asynchronen JavaScript- und XML-Dienst (AJAX) erstellen, der Instanzen komplexer Typen erstellt und zwischen Dienst und Client als JavaScript Object Notation (JSON) sendet. Sie können über einen Webbrowserclient auf einen AJAX-Dienst zugreifen, indem Sie JavaScript-Code verwenden. Dieses Beispiel basiert auf dem Standard AJAX-Dienstbeispiel .

AJAX-Unterstützung in WCF ist für die Verwendung mit ASP.NET AJAX über das ScriptManager Steuerelement optimiert. Ein Beispiel für die Verwendung von WCF mit ASP.NET AJAX finden Sie in den AJAX-Beispielen.

Hinweis

Die Einrichtungsverfahren und Build-Anweisungen für dieses Beispiel befinden sich am Ende dieses Themas.

Der Dienst im folgenden Beispiel ist ein WCF-Dienst ohne AJAX-spezifischen Code. Da das WebGetAttribute Attribut nicht angewendet wird, wird das Standard-HTTP-Verb ("POST") verwendet. Der Dienst verfügt über einen Vorgang, DoMathder einen komplexen Typ mit dem Namen MathResultzurückgibt. Der komplexe Typ ist ein Standarddatenvertragstyp, der auch 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 einen AJAX-Endpunkt in dem Service mithilfe von WebScriptServiceHostFactory, genau wie im Beispiel des Basic AJAX Service.

Die Clientwebseite ComplexTypeClientPage.aspx enthält ASP.NET- und JavaScript-Code, um den Dienst aufzurufen, wenn der Benutzer auf die Schaltfläche " Berechnung ausführen " auf der Seite klickt. Der Code zum Aufrufen des Diensts erstellt einen JSON-Textkörper und sendet ihn mithilfe von HTTP POST, ähnlich dem BEISPIEL FÜR DEN AJAX-Dienst mit HTTP POST .

Nachdem der Dienstaufruf erfolgreich war, können Sie auf die einzelnen Datenmitglieder (sum, difference, product und quotient) im resultierenden JavaScript-Objekt 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 können Sie das Beispiel einrichten, erstellen und ausführen

  1. Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.

  2. Erstellen Sie die Lösung ComplexTypeAjaxService.sln wie im Erstellen der Windows Communication Foundation-Beispiele beschrieben.

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

Siehe auch