Ukázka služby AJAX využívající komplexní typy
Ukázka ComplexTypeAjaxService ukazuje, jak pomocí technologie Windows Communication Foundation (WCF) vytvořit ASP.NET asynchronní službu JavaScript a XML (AJAX), která vytváří instance komplexních typů a odesílá je mezi službou a klientem jako zápis javascriptového objektu (JSON). Ke službě AJAX můžete přistupovat pomocí kódu JavaScriptu z klienta webového prohlížeče. Tato ukázka vychází z ukázky základní služby AJAX.
Podpora AJAX ve WCF je optimalizovaná pro použití s ASP.NET AJAX prostřednictvím ScriptManager ovládacího prvku. Příklad použití WCF s ASP.NET AJAX najdete v ukázkách AJAX.
Poznámka:
Postup nastavení a pokyny k sestavení pro tuto ukázku najdete na konci tohoto tématu.
Služba v následující ukázce je služba WCF bez kódu specifického pro AJAX. WebGetAttribute Protože atribut není použit, použije se výchozí příkaz HTTP ("POST"). Služba má jednu operaci, DoMath
která vrací komplexní typ s názvem MathResult
. Komplexní typ je standardní datový typ kontraktu, který také neobsahuje žádný kód specifický pro AJAX.
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
Vytvořte ve službě koncový bod AJAX pomocí metody WebScriptServiceHostFactory, stejně jako v ukázce základní služby AJAX.
Webová stránka klienta ComplexTypeClientPage.aspx obsahuje kód ASP.NET a JavaScript, který službu vyvolá, když uživatel klikne na tlačítko Provést výpočet na stránce. Kód pro vyvolání služby vytvoří tělo JSON a odešle ho pomocí HTTP POST, podobně jako služba AJAX pomocí ukázky HTTP POST .
Po úspěšném volání služby můžete přistupovat k jednotlivým datovým členům (sum
difference
product
aquotient
) ve výsledném javascriptovém objektu.
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;
}
Nastavení, sestavení a spuštění ukázky
Ujistěte se, že jste pro ukázky windows Communication Foundation provedli jednorázovou instalační proceduru.
Sestavte řešení ComplexTypeAjaxService.sln, jak je popsáno v části Sestavení ukázek Windows Communication Foundation.
Přejděte na
http://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx
(neotevírejte ComplexTypeClientPage.aspx v prohlížeči z adresáře projektu).