Condividi tramite


Esempio di servizio AJAX con tipi complessi

L'esempio ComplexTypeAjaxService illustra come usare Windows Communication Foundation (WCF) per creare un servizio JavaScript e XML (AJAX) asincrono ASP.NET che crea istanze di tipi complessi e li invia tra il servizio e il client come JavaScript Object Notation (JSON). È possibile accedere a un servizio AJAX usando il codice JavaScript da un client web browser. Questo esempio si basa sull'esempio di servizio AJAX Basic .

Il supporto AJAX in WCF è ottimizzato per l'uso con ASP.NET AJAX tramite il ScriptManager controllo . Per un esempio di utilizzo di WCF con ASP.NET AJAX, vedere gli esempi AJAX.

Annotazioni

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.

Il servizio nell'esempio seguente è un servizio WCF senza codice specifico di AJAX. Poiché l'attributo WebGetAttribute non viene applicato, viene usato il verbo HTTP predefinito ("POST"). Il servizio dispone di un'operazione, DoMath, che restituisce un tipo complesso denominato MathResult. Il tipo complesso è un tipo di contratto dati standard, che non contiene anche codice specifico di AJAX.

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

Creare un endpoint AJAX nel servizio usando WebScriptServiceHostFactory, come nell'esempio di servizio AJAX di base.

La pagina Web client ComplexTypeClientPage.aspx contiene ASP.NET e codice JavaScript per richiamare il servizio quando l'utente fa clic sul pulsante Esegui calcolo nella pagina. Il codice per richiamare il servizio costruisce un corpo JSON e lo invia usando HTTP POST, simile all'esempio AJAX Service Using HTTP POST .

Al termine della chiamata al servizio, è possibile accedere ai singoli membri dati (sum, differenceproduct e quotient) nell'oggetto JavaScript risultante.

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

Per configurare, compilare ed eseguire l'esempio

  1. Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.

  2. Compilare la soluzione ComplexTypeAjaxService.sln come descritto in Compilazione degli esempi di Windows Communication Foundation.

  3. Accedere a http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (non aprire ComplexTypeClientPage.aspx nel browser dalla directory del progetto).

Vedere anche