AJAX Service Using Complex Types, exemple
Cet exemple ComplexTypeAjaxService montre comment utiliser Windows Communication Foundation (WCF) pour créer un service AJAX (ASP.NET Asynchronous JavaScript and XML) qui créent des instances de types complexes et les envoient entre le service et le client au format JSON (JavaScript Object Notation). Vous pouvez accéder à un service AJAX en utilisant le code JavaScript à partir d'un client de navigateur Web. Cet exemple s’appuie sur l’exemple Service AJAX de base.
La prise en charge d'AJAX dans WCF est optimisée pour permettre son utilisation avec ASP.NET AJAX via le contrôle ScriptManager. Pour obtenir un exemple d’utilisation de WCF avec ASP.NET AJAX, consultez Exemples AJAX.
Notes
La procédure d'installation ainsi que les instructions de génération relatives à cet exemple figurent à la fin de cette rubrique.
Le service dans l'exemple suivant est un service WCF sans code spécifique à AJAX. L'attribut WebGetAttribute n'étant pas appliqué, le verbe HTTP par défaut ("POST") est utilisé. Le service a une opération appelée DoMath
qui retourne un type complexe appelé 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 à l'aide de WebScriptServiceHostFactory, comme dans l'exemple de servie AJAX de base.
La page web client ComplexTypeClientPage.aspx contient du code ASP.NET et JavaScript pour appeler le service lorsque l’utilisateur clique sur le bouton Perform calculation (Réaliser le calcul) dans la page. Le code permettant d'appeler le service construit un corps JSON et l'envoie à l'aide de HTTP POST, comme dans l'exemple Service AJAX utilisant HTTP POST.
Une fois l'appel de service réussi, vous pouvez accéder aux membres de données individuels (sum
, difference
, product
et quotient
) 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
Assurez-vous d’avoir effectué la Procédure d’installation unique pour les exemples Windows Communication Foundation.
Générez la solution ComplexTypeAjaxService.sln telle que décrite dans la section Construction des exemples Windows Communication Foundation.
Accédez à
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(n’ouvrez pas ComplexTypeClientPage.aspx dans le navigateur à partir du répertoire du projet).