asp.net ajax1.0基础回顾(五):调用ASMX(WebService)

通过asp.net ajax来调用ASMX时,只需要将ASMX地址在ScriptManager上注册一下,具体如下:

1.创建ASMX,给WebService手动添加ScriptService属性,或取消注消ScriptService,代码如下:


  1. [WebService(Namespace = "http://tempuri.org/")] 
  2. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
  3. [System.Web.Script.Services.ScriptService] 
  4. public class HelloWebService : System.Web.Services.WebService 
  5.     [WebMethod] 
  6.     public String HelloWorld(String name) 
  7.     { 
  8.         return String.Format("Hello {0}", name); 
  9.     } 

2.client前端DOM代码:


  1. <asp:ScriptManager ID="ScriptManagerDemo" runat="server"> 
  2.     <Services> 
  3.         <asp:ServiceReference Path="HelloWebService.asmx" /> 
  4.     </Services> 
  5. </asp:ScriptManager> 
  6. <input id="btnCallWS" type="button" value="CallWS"  
  7. onclick="return btnCallWS_onclick()" /> 

3.client前端js代码:


  1. function btnCallWS_onclick() { 
  2.         HelloWebService.HelloWorld("彭金华", onSuccess); 
  3.  
  4. function onSuccess(result) 
  5.     alert(result); 

4.开始测试。

asp.net ajax1.0基础回顾(五):调用ASMX(WebService)

个人点评:

i. 给ASMX类添加ScriptService属性后,此ASMX便可以被前端asp.net ajax调用;

ii. 将ASMX的URL在ScriptManager控件上注册,主要目的是为了添加js引用,如上述示例中的;

<script src="HelloWebService.asmx/jsdebug" type="text/javascript"></script>

iii. 在HelloWebService.asmx/jsdebug引用中,包括自动生成的代理对象和代码原型方法,如上述示例中;

HelloWebService.HelloWorld (name,onSuccess,onFailed,userContext);

iv. 如果是WebApplication,在调用时需要加相应的命名空间。



本文转自 彭金华  51CTO博客,原文链接:http://blog.51cto.com/pengjh/596480