Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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
, difference
product
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
Assicurati di aver eseguito la procedura di installazione di One-Time per gli esempi di Windows Communication Foundation.
Compilare la soluzione ComplexTypeAjaxService.sln come descritto in Compilazione degli esempi di Windows Communication Foundation.
Accedere a
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(non aprire ComplexTypeClientPage.aspx nel browser dalla directory del progetto).