======================================================
注:本文源代码点此下载
======================================================
asp.net 2.0 ajax extensions为我们提供的主要功能如下
序列化和反序列化
客户端访问web service方法
服务器端ajax控件
_____scriptmanager
_____updatepanel
_____extender
微软的asp.net ajax有一点非常让人感觉神奇的一点,也算是他宣传的一个鳌头,说的是,所有的asp.net程序员,不用写任何javascript代码就可以实现ajax,那么updatepanel呢,就是说着话的资本,我们也知道,几乎所有的服务端控件,只要简单的把它嵌套在updatepanel里,然后做一些简单的设置,就可以实现为一个ajax效果,但是,这样也就很容易造成一个ajax的滥用,我们知道,ajax的特点嫩,就是提高用户体验,减少了客户端和服务器端之间的数据访问,而使用updatepanel,实际上并没有减少发送给服务器端的数据量,相反,它增加了一些他需要的数据,这也使updatepanel经常变成一个性能杀手,所以我们在使用中一定要做到合理使用,当然啦,要做一个好的ajax应用,不写javascript代码是不可能的,其实我以下的文章里,或者我们的实际应用里将会写大量的javascript代码,也幸亏吧,vs给我们提供和功能强大的代码提示功能,减少了错误率,也同时让我们变懒了很多,反正任何东西也是有两面性的,小白作为一个it界的菜鸟,就不多做评价啦,一句话,这个代码提示功能,让我不敢爱却不得不爱,闲话少说,书归正传。。。。。。
首先写一个客户端访问web service的demo
1创建一个vehicleservice.asmx(web服务):
using system;
using system.collections.generic;
using system.linq;
using system.web;
using system.web.services;
using system.web.script.services;
///
///vehicleservice 的摘要说明
///
[webservice(namespace = "http://tempuri.org/")]
[webservicebinding(conformsto = wsiprofiles.basicprofile1_1)]
//若要允许使用 asp.net ajax 从脚本中调用此 web 服务,请取消对下行的注释。
[system.web.script.services.scriptservice]
public class vehicleservice : system.web.services.webservice
{
[webmethod]
[scriptmethod]
public vehicle getvehicle(string name,string fullspeed,string weight)
{
return new vehicle(name, int32.parse(fullspeed), float.parse(weight));
}
}
这里需要注意的是,一定要在类之前家上一个scriptservice标记,在需要调用的方法前scriptmethod标记,这样才可以保证方法在客户端可以调用
2.在要调用webservice的页面中加入scriptmanager控件,并在scriptmanager中注册这个webservice:
好文要顶关注我收藏该文与我联系
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/