Delen via


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, DoMathdie 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, differenceproduct 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

  1. Zorg ervoor dat u de eenmalige installatieprocedure voor de Windows Communication Foundation-voorbeelden hebt uitgevoerd.

  2. Bouw de oplossing ComplexTypeAjaxService.sln zoals beschreven in het bouwen van de Windows Communication Foundation-voorbeelden.

  3. Ga naar http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (open ComplexTypeClientPage.aspx niet in de browser vanuit de projectmap).

Zie ook