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 脚本管理器控件后,可以使用与常规 JavaScript 函数调用完全相同的 JavaScript 代码调用服务作。
通过添加相应的 ASP.NET AJAX 终结点,可以将大多数 Windows Communication Foundation (WCF) 服务作为与 ASP.NET AJAX 兼容的服务公开。
如果使用 Visual Studio,则可以在处理 ASP.NET 网站或 Web 应用程序时,在“ 添加新项 ”对话框中为启用了 AJAX 的 WCF 服务使用预建模板。
如果不使用 Visual Studio 模板,可通过两种方法创建 ASP.NET AJAX 终结点:
通过动态主机激活来创建终结点,无需任何配置。 如果你不熟悉 WCF 配置系统,这是最基本的方法。 有关详细信息,请参阅 如何在不使用配置的情况下添加 ASP.NET AJAX 端点。
使用配置将启用了 AJAX 的终结点添加到 WCF 服务。 有关详细信息,请参阅 如何:使用配置添加 ASP.NET AJAX 终结点。
WCF Web HTTP 编程模型概述中所述的 Web 编程模型可用于 AJAX 服务 ASP.NET。 具体说来:
可以使用 WebGetAttribute 和 WebInvokeAttribute 属性在 HTTP GET 和 HTTP POST 谓词之间进行选择。 如果正确使用,这可能会显著提高应用程序的性能。 有关详细信息,请参阅 “如何:在 HTTP POST 和 HTTP GET 请求之间选择 ASP.NET AJAX 终结点。
可以使用和ResponseFormatResponseFormat属性来使服务返回 XML 数据,而不是默认的 JavaScript 对象表示法(JSON)。 使用 ASP.NET AJAX 框架执行此作会导致 JavaScript 客户端接收 XML DOM 对象。
警告
您的操作必须将内容类型设置为文本/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 兼容,则无法更改WebGetAttribute和WebInvokeAttribute属性的其他属性。 只要不违反 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 服务。