這個範例會示範如何使用 Windows Communication Foundation (WCF) 來建立 ASP.NET Asynchronous JavaScript 與 XML (AJAX) 服務,此服務會建立複雜型別的執行個體,並在服務和用戶端之間以 Javascript 物件標記法 (JSON) 進行傳送。您可以從 Web 瀏覽器用戶端使用 JavaScript 程式碼存取 AJAX 服務。這個範例是以基本 AJAX 服務範例為基礎所建立。
注意: |
|---|
| 要建置和執行這個範例,必須安裝 .NET Framework version 3.5。要開啟專案和方案檔,必須要有 Visual Studio 2008。 |
WCF 中的 AJAX 支援已針對透過 ScriptManager 控制項來搭配 ASP.NET AJAX 使用完成最佳化。如需搭配 ASP.NET AJAX 使用 WCF 的範例,請參閱 AJAX 範例。
注意: |
|---|
| 此範例的安裝程序與建置指示位於本主題的結尾。 |
下列範例中的服務是沒有使用 AJAX 特定程式碼的 WCF 服務。因為沒有套用 WebGetAttribute 屬性,所以會使用預設的 HTTP 動詞命令 ("POST")。服務有一項 MathResult 作業,它會傳回名為 DoMath 的複雜型別。複雜型別是標準資料合約型別,其中也未包含 AJAX 特定程式碼。
[DataContract]
public class MathResult
{
[DataMember]
public double sum;
[DataMember]
public double difference;
[DataMember]
public double product;
[DataMember]
public double quotient;
}
您會在服務組態檔中使用 WebHttpBinding 標準繫結與 <enableWebScript> 行為建立服務的 AJAX 端點,這種做法類似於基本 AJAX 服務範例。
用戶端網頁 ComplexTypeClientPage.aspx 會包含 ASP.NET 和 JavaScript 程式碼,以便在使用者按一下頁面上的 [執行計算] 按鈕時叫用此服務。用來叫用此服務的程式碼會建構 JSON 本文,並使用 HTTP POST 加以傳送,這種做法類似於使用 HTTP POST 的 AJAX 服務範例。
在服務呼叫成功後,您就可以存取在結果 JavaScript 物件上的個別資料成員 (sum、difference、product 和 quotient)。
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;
}
若要設定、建置及執行範例
使用建置 Windows Communication Foundation 範例中描述的方式建置方案 ComplexTypeAjaxService.sln。
瀏覽到 https://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (不要使用瀏覽器從專案目錄開啟 ComplexTypeClientPage.aspx)。
請參閱
工作
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.
注意: