Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A ComplexTypeAjaxService minta bemutatja, hogyan használható a Windows Communication Foundation (WCF) egy ASP.NET Aszinkron JavaScript- és XML-szolgáltatás (AJAX) létrehozására, amely összetett típusú példányokat hoz létre, és elküldi őket a szolgáltatás és az ügyfél között JavaScript Object Notation (JSON) néven. Az AJAX-szolgáltatásokhoz JavaScript-kóddal férhet hozzá egy webböngésző-ügyfélről. Ez a minta az alapszintű AJAX-szolgáltatásmintára épül.
A WCF AJAX-támogatása ASP.NET AJAX-tal való használatra van optimalizálva a ScriptManager vezérlőn keresztül. A WCF ASP.NET AJAX-tal való használatára vonatkozó példát az AJAX-mintákban talál.
Megjegyzés:
A minta telepítési eljárása és összeállítási utasításai a témakör végén találhatók.
A következő mintában szereplő szolgáltatás egy WCF-szolgáltatás, amely nem tartalmaz AJAX-specifikus kódot. Mivel az WebGetAttribute attribútum nincs alkalmazva, a rendszer az alapértelmezett HTTP-igét ("POST") használja. A szolgáltatás egyetlen művelettel rendelkezik, DoMathamely egy összetett, névvel ellátott MathResulttípust ad vissza. Az összetett típus egy szabványos adatszerződés-típus, amely szintén nem tartalmaz AJAX-specifikus kódot.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Hozzon létre egy AJAX-végpontot a szolgáltatásban az WebScriptServiceHostFactoryalapszintű AJAX-szolgáltatás mintájához hasonlóan.
Az ügyfélweblap ComplexTypeClientPage.aspx ASP.NET és JavaScript-kódot tartalmaz a szolgáltatás meghívásához, amikor a felhasználó a lapon a Számítás végrehajtása gombra kattint. A szolgáltatás meghívására szolgáló kód létrehoz egy JSON-törzset, és HTTP POST használatával küldi el, hasonlóan az AJAX szolgáltatáshoz HTTP POST-minta használatával .
A szolgáltatáshívás sikeres végrehajtása után hozzáférhet az egyes adattagokhoz (sumdifferenceproductés quotient) az eredményként kapott JavaScript-objektumon.
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;
}
A példa beállítása, elkészítése és futtatása
Győződjön meg arról, hogy elvégezte a Windows Communication Foundation-minták One-Time beállítási eljárását.
A megoldás ComplexTypeAjaxService.sln a Windows Communication Foundation mintáinak elkészítésében leírtak szerint.
Navigáljon a
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspxelemre (ne nyissa meg a ComplexTypeClientPage.aspx fájlt a böngészőben a projektkönyvtárból).