AJAX-tjänst med hjälp av exempel på komplexa typer
Exemplet ComplexTypeAjaxService visar hur du använder Windows Communication Foundation (WCF) för att skapa en ASP.NET Asynkron JavaScript- och XML-tjänst (AJAX) som skapar instanser av komplexa typer och skickar dem mellan tjänsten och klienten som JavaScript Object Notation (JSON). Du kan komma åt en AJAX-tjänst med hjälp av JavaScript-kod från en webbläsarklient. Det här exemplet bygger på basic AJAX-tjänstexemplet .
AJAX-stöd i WCF är optimerat för användning med ASP.NET AJAX via ScriptManager kontrollen. Ett exempel på hur du använder WCF med ASP.NET AJAX finns i AJAX-exempel.
Kommentar
Installationsproceduren och bygginstruktionerna för det här exemplet finns i slutet av det här avsnittet.
Tjänsten i följande exempel är en WCF-tjänst utan AJAX-specifik kod. WebGetAttribute Eftersom attributet inte tillämpas används standard-HTTP-verbet ("POST"). Tjänsten har en åtgärd, DoMath
, som returnerar en komplex typ med namnet MathResult
. Den komplexa typen är en standardtyp för datakontrakt som inte heller innehåller någon AJAX-specifik kod.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Skapa en AJAX-slutpunkt för tjänsten med hjälp WebScriptServiceHostFactoryav , precis som i basic AJAX-tjänstexemplet.
Klientwebbsidan ComplexTypeClientPage.aspx innehåller ASP.NET och JavaScript-kod för att anropa tjänsten när användaren klickar på knappen Utför beräkning på sidan. Koden som anropar tjänsten konstruerar en JSON-brödtext och skickar den med HTTP POST, ungefär som AJAX-tjänsten med hjälp av HTTP POST-exemplet .
När tjänstanropet har slutförts kan du komma åt enskilda datamedlemmar (sum
, product
difference
och quotient
) på det resulterande JavaScript-objektet.
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;
}
Så här konfigurerar du, skapar och kör exemplet
Kontrollera att du har utfört engångsinstallationsproceduren för Windows Communication Foundation-exempel.
Skapa lösningen ComplexTypeAjaxService.sln enligt beskrivningen i Skapa Windows Communication Foundation-exempel.
Gå till
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(öppna inte ComplexTypeClientPage.aspx i webbläsaren från projektkatalogen).