啥叫异步,啥叫Ajax.咱不谈啥XMLHTTPRequest.通俗讲异步就是前台页面javascript能调用后台方法.这样就达到了无刷新.所谓的Ajax.这里我们讲二种方法
       方法一:(微软有自带Ajax框架)
       在Asp.net里微软有自己的Ajax框架.就是在页面后台.cs文件里引入 using System.Web.Services 空间 然后定义静态方法(方法前加上 [WebMethod])
          
       好了,现在我们谈谈前台Js怎么处理后台返回的数据吧,可利用Jquery处理返回的纯html,json,Xml等数据.这里我们演示返回返回的数据有string、集合(List<>)、类.
       但都返回Json格式(Json轻量级比XML处理起来简单).看看前台是怎么解析这些数据的.
       代码如下:
       前台页面:
       
        
       后台.cs文件
        
       利用Jquery让返回的各类数据(string、集合(List<>)、类)以Json数据格式返回,为什么要用到result.d 
         这里我们顺带讲下Json
         Json简单讲就是Javascript对象或数组.
        Json形式一: javascript对象    { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }   
         Json形式二: javascript数组    [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }, 
                                        { "firstName": "Jason", "lastName":"Hunterwang", "email": "bbbb"}]
         当然javascript 数组和对象可以互相嵌套.如形式一中的"Brett"可以换成一个Js数组或Js对象.那微软的Ajax返回的是哪种形式呢.是第一种.
         微软框架默认返回一个  { "d": "后台返回的数据" } 这里我们用以上示例中的测试到得比如  
         如上例的返回的是string类型的话Firefox调试如下 
       
       当返回的是List<>类型的话FireFox调试如下
       
       返回的数据也是放在Js对象中的d属性里面 所以说这就是为什么我们老是用result.d来取微软的框架返回的数据.
       方法一不常用.一般用得多的还是方法二.
       方法二:(建一个一般处理程序即.ashx文件)
       用这种方法一般是我们要在ashx文件里手动写好返回的Json格式的数据返回给前台用
       ashx 你可以配成Json格式一或Json格式二
       Default.aspx页面Js代码如下
       
        
       Handler.ashx 代码如下
       
        
       以上基本上就第二种方法,可能有人不喜欢拼字符串.那有什么好办法呢?答案是有.微软对Json有很好的支持.
       拿上例子说我们只要把Handler.ashx改一下就可以了
       Handler.ashx 代码如下
       
        
       ASP.Net中的JavaScriptSerializer为我们提供了很好的方法
       jss.Serialize(drow) 是把drow的Dictionary<string, int> (键和值的集合)数据类型转换成Json数据格式
       调试结果如下图 (上面例子是输出了一个键值多集合即一个Json形式一的Js对象)
       
       如果要输出Json形式二(Js数组)呢? 我们也只要改动一部分就了
       Handler.ashx 代码如下
       
        
       调试结果如下图 (上面例子是输出了Json形式二的Js数组)
       
        讲到这里基本概念也讲得差不多了. 这里再讲一个够常碰到的例子就是如何把DataTabel转换成Json格式从而好让前台页面调用.
       就是在Handler.ashx写上一个方法 
           
        其实也有把Json格式转换成DataTabel格式,方法如下
              那么前台页面JS如下
       
        
       由上例子 再讲两个Js知识点 
       1. 之前我们取Json里面的数据如果是返回的是数组的话是用data[i].name也可表示为data[i]["name"]
       2. 如果要访问Js对象的说所有属性那么遍历Js对象.
        
       
       有把前台Json数据传到后台后解析成DataTabel
       这里我把DataTabel软成Json和Json转成DataTabel写成一个例子.下载地址如下