共用方式為


建立適用於 ASP.NET AJAX 的 WCF 服務

Microsoft ASP.NET AJAX 可讓您快速建立網頁,其中包含具有回應式和熟悉使用者介面元素的豐富用戶體驗。 ASP.NET AJAX 提供用戶端腳本連結庫,其中包含跨瀏覽器 ECMAScript (JavaScript) 和動態 HTML (DHTML) 技術,並將它們與 ASP.NET 2.0 伺服器型開發平臺整合。 藉由使用 ASP.NET AJAX,您可以改善 Web 應用程式的用戶體驗和效率。

ASP.NET AJAX 是由用戶端腳本連結庫和伺服器元件所組成,這些元件已整合以提供強固的開發架構。 若要從 ASP.NET 頁面存取服務:一旦服務 URL 新增至頁面上的 ASP.NET Script Manager 控件,就可以使用與一般 JavaScript 函式呼叫完全相同的 JavaScript 程式代碼來叫用服務作業。

大部分的 Windows Communication Foundation (WCF) 服務可能會藉由新增適當的 ASP.NET AJAX 端點,公開為與 ASP.NET AJAX 相容的服務。

如果您使用 Visual Studio,您可以使用預先建置的範本來使用已啟用 AJAX 的 WCF 服務,可在使用 ASP.NET 網站或 Web 應用程式時,於 [ 新增專案 ] 對話方塊中取得。

如果您未使用 Visual Studio 範本,有兩種方式可以建立 ASP.NET AJAX 端點:

WCF Web HTTP 程式設計模型概觀中所述的 Web 程式設計模型可以與 AJAX 服務 ASP.NET 搭配使用。 具體說來:

  • 您可以使用 WebGetAttributeWebInvokeAttribute 屬性來選取 HTTP GET 和 HTTP POST 動詞。 如果正確使用,這可能會大幅改善應用程式的效能。 如需詳細資訊,請參閱 如何:選擇 ASP.NET AJAX 端點的 HTTP POST 和 HTTP GET 要求

  • 您可以使用 ResponseFormatResponseFormat 屬性,讓您的服務傳回 XML 數據,而不是預設的 JavaScript 物件表示法 (JSON)。 使用 ASP.NET AJAX 架構執行此動作,會導致 JavaScript 用戶端接收 XML DOM 物件。

    警告

    您的作業必須將內容類型設定為 text/xml,才能運作。 否則,JavaScript 用戶端會收到包含 XML 而不是 XML DOM 物件的字串。

    以下是傳回適當設定內容類型之 XML 資料的作業範例:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • 如果需要與 ASP.NET AJAX 相容,則無法變更 WebGetAttributeWebInvokeAttribute 屬性上的其他屬性。 只要不違反 ASP.NET AJAX 呼叫慣例,就可以使用 Web 程式設計模型的其他層面。

更進階的案例需要瞭解 WCF 中 AJAX 支援的一些額外詳細數據:

  • 若要瞭解如何使用 JavaScript 在 AJAX 頁面用戶端與 WCF 服務之間傳輸數據,以及如需 .NET Framework 類型如何對應至 JavaScript 類型的詳細資訊,請參閱 JSON 和其他數據傳輸格式的支援

  • 若要利用 ASP.NET 功能,例如 URL 型驗證和存取 ASP.NET 工作階段資訊,您可以透過組態啟用 ASP.NET 相容性模式。

WCF 中的 AJAX 端點甚至可以被使用,而不需要使用 ASP.NET AJAX 架構。 這樣做需要瞭解 WCF 中 AJAX 支援的支持架構。 如需此架構的討論,請參閱 WCF Web HTTP 程式設計物件模型。 如需示範此方法的程式代碼範例,請參閱 使用 JSON 和 XML 的 AJAX 服務

另請參閱