当前位置:首页 > ASP.NET AJAX客户端编程教程(2)——知其所以然

ASP.NET AJAX客户端编程教程(2)——知其所以然

点击次数:1255  更新日期:2010-12-31
\n

摘要


\n

上一篇文章中,做了一个“Hello!ASP.NET AJAX”的小例子,但是并没有对其中的技术做解释。这一篇中,将探讨一下使用ASP.NET AJAX框架在客户端调用后台代码的基本方法,并且讨论异常处理的方法。


\n

如何在客户端直接调用WebService中的方法?


\n

1.Web.config中需要配置好运行ASP.NET AJAX框架相应的配置项,当然,建立一个ASP.NET AJAX Enabled Web Site项目时,Web.config已经配置好了。


\n

2.想让某个WebService可以被JS调用,需要做一下几步:


\n

I.在这个WebService文件里用“using System.Web.Script.Services;”引入这个命名空间。


\n

II.在这个类的上面添加“[ScriptService]”属性。


\n

III.在需要被调用的方法上添加“[WebMethod]”属性。


\n

具体例子可以参考《ASP.NET AJAX客户端编程之旅(一)——Hello!ASP.NET AJAX》中的SayHelloService.cs的代码。


\n

3.调用WebService的客户端页面也要做相应准备。首先就是页面中要有一个ScriptManager控件,然后需要在其中指明WebService文件的位置。如:


\n

<Services>
<asp:ServiceReference Path=”~/SayHelloService.asmx” />
</Services>


\n

将这段代码放在<asp:ScriptManager>和<asp:ScriptManager />标签之间,就可以使得这个页面中的JS可以直接调用SayHelloService.asmx中的方法。具体代码可以参考《ASP.NET AJAX客户端编程之旅(一)——Hello!ASP.NET AJAX》中第二个例子中的Default.aspx的代码。


\n

做好以上三项准备,这个页面中的JS代码就可以使用我们熟悉的“类名.方法名”的方法直接调用WebService中的方法了。


\n

魔法背后的故事


\n

我们知道,虽然我们一直说是“直接调用”,但这是指在语法层面上“直接调用”。而实际上,JavaScript代码是不可能真正直接调用后台程序的,这中间一定使用了XMLHttpRequest对象。那么,到底是谁给我们实施了“障眼法”?答案就在下面这张图上:

\n


\n

\n