共用方式為


使用複雜型別的 AJAX 服務範例

這個範例會示範如何使用 Windows Communication Foundation (WCF) 來建立 ASP.NET Asynchronous JavaScript 與 XML (AJAX) 服務,此服務會建立複雜型別的執行個體,並在服務和用戶端之間以 Javascript 物件標記法 (JSON) 進行傳送。您可以從 Web 瀏覽器用戶端使用 JavaScript 程式碼存取 AJAX 服務。這個範例是以基本 AJAX 服務範例為基礎所建立。

Bb472484.note(zh-tw,VS.90).gif注意:
要建置和執行這個範例,必須安裝 .NET Framework version 3.5。要開啟專案和方案檔,必須要有 Visual Studio 2008。

WCF 中的 AJAX 支援已針對透過 ScriptManager 控制項來搭配 ASP.NET AJAX 使用完成最佳化。如需搭配 ASP.NET AJAX 使用 WCF 的範例,請參閱 AJAX 範例

Bb472484.note(zh-tw,VS.90).gif注意:
此範例的安裝程序與建置指示位於本主題的結尾。

下列範例中的服務是沒有使用 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 物件上的個別資料成員 (sumdifferenceproductquotient)。

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;
}

若要設定、建置及執行範例

  1. 請確定您已執行 Windows Communication Foundation 範例的單次安裝程序

  2. 使用建置 Windows Communication Foundation 範例中描述的方式建置方案 ComplexTypeAjaxService.sln。

  3. 瀏覽到 https://localhost/ServiceModelSamples/ComplexTypeClientPage.aspx (不要使用瀏覽器從專案目錄開啟 ComplexTypeClientPage.aspx)。

請參閱

工作

基本 AJAX 服務

Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.