Esempio di servizio AJAX che usa tipi complessiAJAX Service Using Complex Types Sample

Questo esempio viene illustrato come utilizzare Windows Communication Foundation (WCF) per creare un servizio ASP.NET Asynchronous JavaScript and XML (AJAX) che crea istanze di tipi complessi e li invia tra servizio e client come JavaScript Object Notation (JSON).This sample demonstrates how to use Windows Communication Foundation (WCF) to create an ASP.NET Asynchronous JavaScript and XML (AJAX) service that creates instances of complex types and sends them between service and client as JavaScript Object Notation (JSON). È possibile accedere a un servizio AJAX utilizzando codice JavaScript a partire da un client del browser Web.You can access an AJAX service by using JavaScript code from a Web browser client. In questo esempio si basa il servizio AJAX di base esempio.This sample builds on the Basic AJAX Service sample.

Supporto AJAX in WCF è ottimizzato per l'uso con ASP.NET AJAX tramite il ScriptManager controllo.AJAX support in WCF is optimized for use with ASP.NET AJAX through the ScriptManager control. Per un esempio dell'utilizzo di WCF con ASP.NET AJAX, vedere la esempi AJAX.For an example of using WCF with ASP.NET AJAX, see the AJAX Samples.

Nota

La procedura di installazione e le istruzioni di compilazione per questo esempio si trovano alla fine di questo argomento.The setup procedure and build instructions for this sample are located at the end of this topic.

Il servizio nell'esempio seguente è un servizio WCF senza codice specifico per AJAX.The service in the following sample is a WCF service with no AJAX-specific code. Perché l'attributo WebGetAttribute non è applicato, viene utilizzato il verbo HTTP predefinito ("POST").Because the WebGetAttribute attribute is not applied, the default HTTP verb ("POST") is used. Il servizio ha un'operazione, DoMath che restituisce un tipo complesso denominato MathResult.The service has one operation, DoMath, which returns a complex type named MathResult. Il tipo complesso è un tipo di contratto dati standard che non contiene codice AJAX specifico.The complex type is a standard data contract type, which also contains no AJAX-specific code.

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

Creare un endpoint AJAX sul servizio utilizzando WebScriptServiceHostFactory, proprio come nell'esempio del servizio AJAX di base.Create an AJAX endpoint on the service by using the WebScriptServiceHostFactory, just as in the Basic AJAX Service sample.

La pagina Web ComplexTypeClientPage.aspx del client contiene il codice ASP.NET e JavaScript per richiamare il servizio quando l'utente fa clic il eseguire calcolo pulsante nella pagina.The client Web page ComplexTypeClientPage.aspx contains ASP.NET and JavaScript code to invoke the service when the user clicks the Perform calculation button on the page. Il codice per richiamare il servizio costruisce un corpo JSON e lo invia utilizzando HTTP POST, simile al servizio AJAX con HTTP POST esempio.The code to invoke the service constructs a JSON body and sends it using HTTP POST, similar to the AJAX Service Using HTTP POST sample.

Dopo che la chiamata del servizio riesce, è possibile accedere ai membri dati singoli (sum, difference, product e quotient) sull'oggetto JavaScript risultante.After the service call succeeds, you can access the individual data members (sum, difference, product and quotient) on the resulting 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;  
}  

Per impostare, compilare ed eseguire l'esempioTo set up, build, and run the sample

  1. Assicurarsi di avere eseguito la procedura di installazione singola per gli esempi di Windows Communication Foundation.Ensure that you have performed the One-Time Setup Procedure for the Windows Communication Foundation Samples.

  2. Compilare la soluzione ComplexTypeAjaxService.sln, come descritto in compilazione degli esempi di Windows Communication Foundation.Build the solution ComplexTypeAjaxService.sln as described in Building the Windows Communication Foundation Samples.

  3. Passare a http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (non aprire ComplexTypeClientPage.aspx nel browser dalla directory del progetto).Navigate to http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (do not open ComplexTypeClientPage.aspx in the browser from the project directory).

Importante

È possibile che gli esempi siano già installati nel computer.The samples may already be installed on your computer. Verificare la directory seguente (impostazione predefinita) prima di continuare.Check for the following (default) directory before continuing.

<InstallDrive>:\WF_WCF_Samples

Se questa directory non esiste, andare al Windows Communication Foundation (WCF) e gli esempi di Windows Workflow Foundation (WF) per .NET Framework 4 per scaricare tutti i Windows Communication Foundation (WCF) e WFWF esempi.If this directory does not exist, go to Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4 to download all Windows Communication Foundation (WCF) and WFWF samples. Questo esempio si trova nella directory seguente.This sample is located in the following directory.

<InstallDrive>:\WF_WCF_Samples\WCF\Basic\Ajax\ComplexTypeAjaxService

Vedere ancheSee Also

Servizio AJAX di baseBasic AJAX Service