基本 AJAX 服務

這個範例會示範如何使用 Windows Communication Foundation (WCF) 來建立基本 ASP.NET Asynchronous JavaScript 與 XML (AJAX) 服務 (指您可以從 Web 瀏覽器用戶端使用簡單 JavaScript 程式碼存取的服務)。此服務會使用 WebGetAttribute 屬性來確保服務回應 HTTP GET 要求,並且設定為以 JavaScript Object Notation (JSON) 資料格式做為回應的格式。

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

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

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

在下列程式碼中,WebGetAttribute 屬性會套用至 Add 作業以確定服務會回應 HTTP GET 要求。為了簡單起見,此段程式碼會使用 GET (您可以從任何 Web 瀏覽器建構 HTTP GET 要求)。您也可以使用 GET 啟用快取。若是缺少 WebGetAttribute 屬性,HTTP POST 便會是預設值。

[ServiceContract(Namespace = "SimpleAjaxService")]
public interface ICalculator
{
    [OperationContract]
    [WebGet]
    double Add(double n1, double n2);
    //Other operations omitted…
}

您可以在服務組態檔中使用 <webHttpBinding> 標準繫結與 <enableWebScript> 行為建立服務的 AJAX 端點。

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior">
                <enableWebScript />
            </behavior>
        </endpointBehaviors>
    </behaviors>
    <services>
        <service name="Microsoft.Ajax.Samples.CalculatorService">
            <endpoint address=" "
                behaviorConfiguration="Microsoft.Ajax.Samples.CalculatorServiceAspNetAjaxBehavior" 
                binding="webHttpBinding"
                contract="Microsoft.Ajax.Samples.ICalculator" />
        </service>
    </services>
</system.serviceModel>

enableWebScript 行為會將服務的預設資料格式設定為 JSON 而不是 XML。若要叫用 (Invoke) 此服務,請在完成本主題稍後所示的安裝與建置步驟後,巡覽至 https://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200。這個測試功能會在使用 HTTP GET 要求時啟用。

用戶端網頁 SimpleAjaxClientPage.aspx 包含 ASP.NET 程式碼,此程式碼會在使用者每次按下網頁上其中一個作業按鈕時叫用此服務。ScriptManager 控制項會用來設定可透過 JavaScript 存取之服務的 Proxy。

<asp:ScriptManager ID="ScriptManager" runat="server">
     <Services>
          <asp:ServiceReference Path="service.svc" />
     </Services>
</asp:ScriptManager>

這時會具現化 (Instantiated) 本機 Proxy,並使用下列 JavaScript 程式碼叫用作業。

// Code for extracting arguments n1 and n2 omitted…
// Instantiate a service proxy
var proxy = new SimpleAjaxService.ICalculator();
// Code for selecting operation omitted…
proxy.Add(parseFloat(n1), parseFloat(n2), onSuccess, onFail, null);

如果此服務呼叫成功,該段程式碼就會叫用 onSuccess 處理常式,而作業結果會顯示於文字方塊中。

function onSuccess(mathResult){
     document.getElementById("result").value = mathResult;
}

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

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

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

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

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