Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
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
Stellen Sie sicher, dass Sie das One-Time Setup-Verfahren für die Windows Communication Foundation-Beispieleausgeführt haben.
Erstellen Sie die Lösung ComplexTypeAjaxService.sln wie im Erstellen der Windows Communication Foundation-Beispiele beschrieben.
Navigieren Sie zu
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx(öffnen Sie nicht ComplexTypeClientPage.aspx im Browser aus dem Projektverzeichnis).