Partager via


AJAX Service Using Complex Types, exemple

L’exemple ComplexTypeAjaxService montre comment utiliser Windows Communication Foundation (WCF) pour créer un service JavaScript et XML asynchrone (AJAX) ASP.NET qui crée des instances de types complexes et les envoie entre le service et le client en tant que JSON (JavaScript Object Notation). Vous pouvez accéder à un service AJAX à l’aide du code JavaScript à partir d’un client de navigateur web. Cet exemple s’appuie sur l’exemple de service AJAX de base .

La prise en charge AJAX dans WCF est optimisée pour une utilisation avec ASP.NET AJAX via le ScriptManager contrôleur. Pour obtenir un exemple d’utilisation de WCF avec ASP.NET AJAX, consultez les exemples AJAX.

Remarque

La procédure d’installation et les instructions de génération de cet exemple se trouvent à la fin de cette rubrique.

Le service de l’exemple suivant est un service WCF sans code spécifique à AJAX. Étant donné que l’attribut WebGetAttribute n’est pas appliqué, le verbe HTTP par défaut (« POST ») est utilisé. Le service a une opération, DoMathqui retourne un type complexe nommé MathResult. Le type complexe est un type de contrat de données standard, qui ne contient pas non plus de code spécifique à AJAX.

[DataContract]
public class MathResult
{
    [DataMember]
    public double sum;
    [DataMember]
    public double difference;
    [DataMember]
    public double product;
    [DataMember]
    public double quotient;
}

Créez un point de terminaison AJAX sur le service en utilisant le WebScriptServiceHostFactory, comme dans l'exemple du service AJAX de base.

La page web cliente ComplexTypeClientPage.aspx contient ASP.NET et le code JavaScript pour appeler le service lorsque l’utilisateur clique sur le bouton Effectuer le calcul sur la page. Le code à appeler le service construit un corps JSON et l’envoie à l’aide de HTTP POST, comme le service AJAX à l’aide de l’exemple HTTP POST .

Une fois l’appel de service réussi, vous pouvez accéder aux membres de données individuels (sumet differenceproductquotient) sur l’objet JavaScript résultant.

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;
}

Pour configurer, générer et exécuter l’exemple

  1. Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.

  2. Générez la solution ComplexTypeAjaxService.sln comme décrit dans Génération des exemples Windows Communication Foundation.

  3. Accédez à http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (n’ouvrez pas ComplexTypeClientPage.aspx dans le navigateur à partir du répertoire du projet).

Voir aussi