在Asp.net中使用jquery实现Ajax

  • 因为最近的项目需要使用在Asp.net下使用Ajax技术.进行了一些实际研究,原来想用Ext,但考虑到同组的哥几 个一起开发,Ext的类库过大, 并且它的优势在于UI方面;而对于微软官方的解决方案ASP.NET AJAX的类库还包括后台的类库觉得稍重量级了 些.最后选择了jqury,轻量而优雅.

         对于jqury这个javascript类库,有官方的网站支持,感兴趣的想彻底研究的不妨移步过去:点这儿.

        这里只提供自已使用jqury在Asp.net中的应用方案。

         首 先,要解决的问题是使用jQuery.getJSON(url,[data],[callback])方法中url,即要获取前台处理数据的地址。因为以 前有过开发GIS的经验,所以知道一般GIS的解决方案是通过调用“一般处理程序”即以.ashx结尾的文件,它实际上是通过继承 IHttpHandler这个接口来实现自定义返回给客户端自定义内容的。

          IHttpHandler这个接口比较简单只有一个属性和一个方法:

     

     using System;

     namespace System.Web

     {

         public interface IHttpHandler

         {

              bool IsReusable { get; }

              void ProcessRequest(HttpContext context);

        }

    }

          其中ProcessRequest(HttpContext context)这个方法是我们关心的。在我们的.ashx文件中,我们就是要实现自已的ProcessRequest(HttpContext contex),用它来给客户端返回前端数据。

         第二个要解决的问题是C#的数据结构和javascript是完全不同的,所以C#的数据要返回给javascript处理,必须的找个桥梁。这里有两个选择:1.xml;2.JSON。因为这里只是简单的应用实现,所以我选择的是相对简单的JSON。

         方案已定,下面在自己的.ashx文件中可以这么实现ProcessRequest(HttpContext contex)方法:

     

            public void ProcessRequest(HttpContext context)

            {

                context.Response.ContentType = "text/plain";

                string data = "[{name:/"fan/",age:26},{name:/"wang/",age:25}]";//构建的json数据

                //下面两句是用来测试前台向此页面发出的查询字符

                context.Response.Write(data);

            }

         OK,后台的部分完成,剩下的就简单很多,在前台页面中请求这个.ashx即可:

      

    Code

    <script language="javascript" type="text/javascript" src="jquery-1.2.3.js"></script>

    <script language="javascript" type="text/javascript">

      $(document).ready(function(){

        $.getJSON(

        "AjaxHandler.ashx",//产生JSON数据的服务端页面

       //对返回的JSON数据进行处理,本例以列表的形式呈现

        function(json){

       //循环取json中的数据,并呈现在列表中

    //   debugger;

        $.each(json,function(i){

        $("#cat-list").append("<li>name:"+json[i].name+"  Age:"+json[i].age+"</li>")

        })

        });

      });

    </script>

    <div id="categories">

    <h3 title="选择一个分区"><span>选择</span></h3> 

    <ul id="cat-list"></ul>

    </div>

        按F5的话可以看到效果。

        当然这只是简单的Demo,如果想实际应用的话,可以写一个类库来专门处理C#转化为JSON格式,这样处理起来应该方便很多。如果有时间的话,等闲下来我来实现个。

        不知道这个轻量级的应用是否恰当,请各位兄弟指教!

  • 你可能感兴趣的:(JavaScript,jquery,json,function,C#,asp.net)