在asp.net ajax中调用的web服务必需满足以下要求:
1、web服务类,必需用System.Web.Script.Services.ScriptServiceAttribute修饰。
2、要回调的方法必需用WebMethodAttribute修饰。如果需要使用session,可以设定WebMethodAttribute的EnableSession参数为true。
在调用web服务的方法时,要通过ScriptManager或ScriptManagerProxy(在内容页中)引用Web服务的文件路径。
然后在html元素的事件属性(onXXX)中引用本地的一个js方法。在js方法中,调用Web服务类的方法。
注意:
在客户端js方法中,调用Web服务类的方法时,和普通的C#调用不同:首先Web服务的类生成了对应的一个js函数,函数名是:web服务类的全名。
举例如下:如果Web服务类的命名空间:XXNamespace,Web服务类名字:SomeService,公开的方法名为:SomeMethod,那么asp.net ajax框架生成的js函数是:
XXNamespace.SomeService.SomeMethod(一些方法执行需要的参数【可选,取决于web服务方法定义】,调用成功后的js处理函数(通常格式:XXCompleted),调用失败后的js处理函数(通常格式:error)【可选】)