Asp.Net 和 AJAX.Net 的区别第1/2页(2)

AJAX.NET 文档(英文)和网站(英文)对开发人员快速入门非常有用。在介绍使用此技术的一些具体示例之前,我们将简要回顾您所需要知道的核心步骤。

首先从 AJAX.NET 项目网站(英文)上下载并解压缩 AJAX 文件,然后按照您的喜好在 Visual Basic .NET 或 C# 中创建新的 ASP.NET 项目,再向 AJAX.dll 文件添加引用(英文)。唯一的额外配置步骤是在 <system.web> 元素中(位于 web.config 文件中)添加以下代码。

<configuration> <system.web> <httpHandlers> <!-- Register the ajax handler --> <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> </httpHandlers> ... ... </system.web> </configuration>

为了使服务器端函数在 JavaScript 中可用,必须做两件事情。首先,要使用的函数必须标有 Ajax.AjaxMethodAttribute。其次,在页加载事件期间,必须通过调用 Ajax.Utility.RegisterTypeForAjax 来注册包含这些函数的类。听起来似乎有些复杂,但请不必担心;实际上只需要在代码中多加两行。让我们看一个示例。

//C# public class Sample :System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { //注册我们感兴趣的包含服务器端函数 //的类 Ajax.Utility.RegisterTypeForAjax(typeof(Sample)); } [Ajax.AjaxMethod()] public string GetMessageOfTheDay() { return "Experience is the mother of wisdom"; } } 'VB.NET Public Class Sample Inherits System.Web.UI.Page Private Sub Page_Load(sender AsObject, e As EventArgs) Handles MyBase.Load '注册我们感兴趣的包含服务器端函数 '的类 Ajax.Utility.RegisterTypeForAjax(GetType(Sample)) End Sub <Ajax.AjaxMethod()> _ Public Function GetMessageOfTheDay() As String Return "Experience is the mother of wisdom" End Function End Class

以上示例首先告知 Ajax.NET 在 Sample 类中查找友好的 Ajax 方法。它正好是与实际页相同的类,但是它可以是任意 .NET 类,或可以注册多个类。然后,Ajax.NET 将浏览指定的类,来查找标有 AjaxMethodAttribute 的所有方法,其中 Sample 类有一个 GetMessageOfTheDay

完成后,剩下唯一要做的就是在 JavaScript 中使用它。Ajax.NET 自动创建与注册的类具有相同名称的 JavaScript 变量(在本例中将为 Sample),它提供与 AjaxMethod 具有相同名称的函数(在本例中为 GetMessageOfTheDay)。如下所示。

<script language="javascript"> Sample.GetMessageOfTheDay(GetMessageOfTheDay_CallBack); function GetMessageOfTheDay_CallBack(response) { alert(response.value); } </script>

除了 JavaScript 回调函数以外,JavaScript GetMessageOfTheDay 还需要与其服务器端对应部分相同的参数(在此情况下,没有参数),以便在完成时执行并传递响应。在此,我们看到 AJAX 在工作时的异步特性,因为对 GetMessageOfTheDay 的调用不阻碍执行其他 JavaScript 代码,也不阻碍用户继续在页上进行操作。完成服务器端处理时,Ajax.NET 调用指定的回调函数 GetMessageOfTheDay_CallBack,并向其传递由服务器端返回值组成的响应。

服务器端代码和 JavaScript 代码之间的映射可能有些混乱。图 1 简要显示了服务器端代码和 JavaScript 代码,以及两者之间的映射。

Asp.Net 和 AJAX.Net 的区别第1/2页


1:服务器端代码和 JavaScript 代码之间的映射

当然令人感兴趣的 Ajax.NET 还有更多内容值得介绍,例如对 .NET 类型的支持和丰富的回调响应(它不仅仅是值)。以下示例将会重点介绍某些功能,希望帮助您理解 AJAX 如何帮助您创建成功的应用程序。

示例 1:链接的下拉列表

本文的开始简要地讨论了用于链接两个 DropDownList 的两种传统方法。当选定的索引更改时,返回页;或者将所有可能的数据加载到 JavaScript 数组并动态显示。希望您可以看到 AJAX 如何替代这两种解决方案。

首先,让我们来看一下我们的数据界面,并从该数据界面驱动示例。我们的数据访问层将提供两种方法:第一种方法将检索系统支持的国家/地区的列表,第二种方法将获取国家/地区 ID 并返回州/省的列表。由于这是纯数据访问,因此我们只需要使用方法。

//C# public static DataTable GetShippingCountries(); public static DataView GetCountryStates(int countryId); 'VB.NET Public Shared Function GetShippingCountries() As DataTable Public Shared Function GetCountryStates(ByVal countryId As Integer) As DataView

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjfxyw.html