AJAX-service met behulp van voorbeeld van complexe typen
Het voorbeeld complexTypeAjaxService laat zien hoe u Windows Communication Foundation (WCF) gebruikt om een ASP.NET Asynchrone JavaScript- en XML-service (AJAX) te maken waarmee exemplaren van complexe typen worden gemaakt en deze als JavaScript Object Notation (JSON) tussen de service en de client worden verzonden. U kunt toegang krijgen tot een AJAX-service met behulp van JavaScript-code vanuit een webbrowserclient. Dit voorbeeld is gebaseerd op het basic AJAX-servicevoorbeeld .
AJAX-ondersteuning in WCF is geoptimaliseerd voor gebruik met ASP.NET AJAX via het ScriptManager besturingselement. Zie de AJAX-voorbeelden voor een voorbeeld van het gebruik van WCF met ASP.NET AJAX.
Notitie
De installatieprocedure en build-instructies voor dit voorbeeld bevinden zich aan het einde van dit onderwerp.
De service in het volgende voorbeeld is een WCF-service zonder AJAX-specifieke code. Omdat het WebGetAttribute kenmerk niet wordt toegepast, wordt het standaard HTTP-werkwoord ('POST') gebruikt. De service heeft één bewerking, DoMath
die een complex type retourneert met de naam MathResult
. Het complexe type is een standaardgegevenscontracttype, dat ook geen AJAX-specifieke code bevat.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Maak een AJAX-eindpunt op de service met behulp van het WebScriptServiceHostFactoryvoorbeeld van de Basic AJAX-service.
De clientwebpagina ComplexTypeClientPage.aspx bevat ASP.NET en JavaScript-code om de service aan te roepen wanneer de gebruiker op de knop Berekening uitvoeren op de pagina klikt. De code voor het aanroepen van de service bouwt een JSON-hoofdtekst en verzendt deze met behulp van HTTP POST, vergelijkbaar met de AJAX-service met behulp van een HTTP POST-voorbeeld .
Nadat de serviceaanroep is geslaagd, hebt u toegang tot de afzonderlijke gegevensleden (sum
, difference
product
en quotient
) op het resulterende JavaScript-object.
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;
}
Het voorbeeld instellen, compileren en uitvoeren
Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.
Bouw de oplossing ComplexTypeAjaxService.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.
Ga naar
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(open ComplexTypeClientPage.aspx niet in de browser vanuit de projectmap).