app教程网 综合百科 netconfigx.dll下载(regsvr32 netconfigx.dll下载)

netconfigx.dll下载(regsvr32 netconfigx.dll下载)

The recent upsurge of asynchronous JavaScript and XML(AJAX) is entirely due to Google's use of Google Suggestions and Google Maps. Yes, ASP. On the net,

AJAX可以做服务器端处理,不需要回发,这样客户端(浏览器)就有了丰富的服务器端能力。换句话说,它为请求和服务器响应的异步分配和处理提供了一个框架。AJAX利用了一些不太新颖的现有技术。

但是最近对这些技术(加起来就是AJAX)的兴趣突然升温了。

请试试迈克尔施瓦茨的《阿贾克斯》。NET wrapper,通过它,ASP.NET开发人员可以快速方便地部署可以轻松利用AJAX功能的页面。应该注意的是,这个包装器处于初始开发阶段。

所以,还没有完全成熟。

其工作原理概述。

AJAX依靠broker来分配和处理来往于服务器的请求。为此。NET包装依赖于客户端XmlHttpRequest对象。大多数浏览器都支持XmlHttpRequest对象,这也是选择它的原因。

因为包装器的目的是隐藏XmlHttpRequest的实现,我们就不详细讨论了。包装器本身通过标记来工作。NET函数作为AJAX方法。标签,AJAX创建相应的JavaScript函数,

这些函数(像任何JavaScript函数一样)可以使用XmlHttpRequest作为代理在客户机上调用。然后,这些代理被映射回服务器端功能。

很复杂吗?这并不复杂,让我们看一个例子。假设有一个. NET函数:

ublic int Add(int firstNumber, int secondNumber){return firstNumber + secondNumber; }

AJAX。NET wrapper将自动创建一个名为“Add”的JavaScript函数,它有两个参数。当使用JavaScript(在客户机上)调用这个函数时,请求将被传递给服务器,结果将返回给客户机。

初始设置

我们首先介绍“安装”的步骤。项目中使用的dll。如果您知道如何添加. dll文件引用,可以跳过这一节。

首先,如果您还没有,请下载最新的AJAX版本。解压缩下载的文件,并将ajax.dll放在项目的参考文件夹中。

在Visual Studio.NET中组织解决方案资源管理器的“引用”节点,并选择“添加引用”。在打开的对话框中,

单击浏览并找到ref/ajax.dll文件。单击打开,然后单击确定。所以你可以用AJAX编程。网包装纸。

建立HttpHandler

为了保证正常工作,第一步是在web.config中设置包装器的HttpHandler,不需要详细解释什么是HttpHandler,如何工作,只需要知道它们是用来处理ASP.NET请求的。举个例子,

所有*。aspx页面请求由系统处理。web.ui.pagehandlerfactory类。同样的,

我们允许所有对ajax/*的请求。ashx由Ajax处理。PageHandlerFactory:

《配置系统。web \httphandlers \u add verb=' POST,GET' path='ajax/* .阿贾克斯.PageHandlerFactory,Ajax '//httpHandlers

〈system.web〈/configuration

简而言之,上面的代码告诉ASP.NET任何匹配指定路径(ajax/*)的请求。ashx)将由Ajax处理。PageHandlerFactory,而不是默认的处理程序工厂。您不需要创建ajax子目录,

这个神秘的目录只是用来让其他HttpHandlers使用的。ashx扩展放在它们自己的子目录中。

创建页面

现在我们可以开始编码了。创建新页面或打开现有页面。在文件后的代码中,为Page_Load事件添加以下代码:

public class Index : System.Web.UI.Page{private void Page_Load(object sender, EventArgs e){Ajax.Utility.RegisterTypeForAjax(typeof(Index)); //}//}

调用RegisterTypeForAjax将触发页面上的以下JavaScript(或者手动将以下两行代码添加到页面中):

〈脚本语言=' JavaScript ' src=' Ajax/common。ashx '/script \脚本语言=' JavaScript ' src=' Ajax/Namespace .PageClass,程序集名称。ashx '/script

最后一行的意思是:

命名空间。当前页面的命名空间和类(通常是@Page指令中Inherits属性的值)。

AssemblyName——当前页面所属的程序集的名称(通常是项目名称)以下是AjaxPlay项目中sample.aspx页面的结果示例:

“%@ Page Inherits='AjaxPlay .示例“代码隐藏=”示例。aspx。cs“%〈html〉head〉script language=' JavaScript ' src=' Ajax/common。ashx '/script〈script language=' JavaScript ' src=' Ajax/Ajax play .样本,ajaxplay。ashx '/script/headbodyform id=' form 1 ' method=' post ' runat=' server '

﹨/form﹨/body﹨/html

可以在浏览器中手动导航到src路径(查看源代码,复制粘贴路径)检查是否一切正常。如果两条路径都输出一些(看似)无意义的文本,那就万事大吉了。如果没有输出或者出现ASP.NET错误,

说明有些地方存在问题。

即使你不知道HttpHandlers是如何工作的,上面的例子也很容易理解。通过web.config,我们确保了所有对ajax/*的请求。ashx由自定义处理程序处理。很明显,

这里的两个脚本标记将由一个自定义处理程序来处理。

创建一个服务器端函数

现在让我们创建一个可以从客户端调用异步访问的服务器端函数。因为目前不支持所有的返回类型(不用担心,会在当前版本的基础上开发新版本),所以我们还是继续使用简单的ServerSideAdd函数吧。在文件后的代码中,

将以下代码添加到页面中:

[Ajax.AjaxMethod()]public int ServerSideAdd(int firstNumber, int secondNumber){return firstNumber + secondNumber; }

注意这些函数有Ajax。AjaxMethod属性集。这个属性告诉包装器,这些方法创建要在客户机上调用的javaScript代理。

客户呼叫

最后一步是用JavaScript调用函数。AJAX包装器负责创建JavaScript函数示例。带有两个参数的ServerSideAdd。对于这个最简单的函数,只需调用这个方法并传递两个数字:

“%@ Page Inherits='AjaxPlay .示例“代码隐藏=”示例。aspx。cs“%〈html〉head〉script language=' JavaScript ' src=' Ajax/common。ashx '/script〈script language=' JavaScript ' src=' Ajax/Ajax play .样本,ajaxplay。ashx '/script/headbodyform id=' form 1 ' method=' post ' runat=' server 'script language=' JavaScript ' var response=sample .ServerSideAdd(100,99);警报(响应。值);﹨/script﹨/form﹨/body﹨/html

当然,我们并不想仅仅用这种强大的能力来警告用户。这就是为什么所有的客户端代理,如JavaScript示例。ServerSideAd功能,也接受其他功能。

这个特性是被调用来处理响应的回调函数:

Sample.ServerSideAdd(100,99, ServerSideAdd_CallBack);

function ServerSideAdd_CallBack(response){if (response.error !=null){alert(response.error); return; }alert(response.value); }

从上面的代码可以看出,我们指定了另一个参数。ServerSideAdd_CallBack(参见上面的代码)是一个用于处理服务器响应的客户端函数。这个回调函数接收一个公开三个主要属性的响应对象。

Value——服务器端函数实际返回的值(无论是字符串、自定义对象还是数据集)。

Error——错误消息(如果有)。

对xml http请求的原始响应。

上下文——上下文对象。

首先,我们检查错误,看是否有错误。通过在服务器端函数中抛出异常,可以轻松处理错误特性。在这个简化的例子中,这个值然后被用来警告用户。请求特性可用于获取更多信息(参见下一节)。

处理类型

返回复杂类型

Ajax包装器不仅能处理ServerSideAdd函数所返回的整数。

它目前还支持integers、strings、double、booleans、DateTime、DataSets和DataTables,以及自定义类和数组等基本类型。

其他所有类型都返回它们的ToString值。返回的DataSets和真正的.NET DataSet差不多。假设一个服务器端函数返回DataSet,我们可以通过下面的代码在客户端显示其中的内容:

〈script language='JavaScript'//Asynchronous call to the mythical 'GetDataSet' server-side functionfunction getDataSet(){AjaxFunctions.GetDataSet(GetDataSet_callback); }function GetDataSet_callback(response){var ds=response.value; if(ds !=null typeof(ds)=='object' ds.Tables !=null){var s=new Array(); s[s.length]='〈table border=1'; for(var i=0; i〈ds.Tables[0].Rows.length; i++){s[s.length]='〈tr'; s[s.length]=qu

本文来自网络,不代表本站立场,转载请注明出处:https: