Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis 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).