通过ashx获取JSON数据的两种方式

网上asp.net开发jquery mobile的示例很少,根据网上提供的不完全资料自己研究了一下,通过两种方式可以获取JSON数据:

 

第一,通过get实现:

 

复制代码
// 前面引用省略
<script>

$('#frmmain').live('pageinit',  function(event) {
        $.get('handler/aprvhandler.ashx', { type: 'myParam', cnt: '10' },  function(data) {

             var userlist = $.parseJSON(data);  // 解析JSON
            $("#userlist").append("<ul data-role='listview'></ul>");  
            $.each(userlist,  function(index, value) {

                 var temp = "<li><a href='aprvdetail.aspx?id=" + value + "'><h3>" + value + "</h3></a></li>";
                $("#userlist ul").append(temp);
            });
            $("#userList").trigger("create"); 

            });
});
</script>
复制代码

 

第二,通过post实现:

  

复制代码
// 前面引用省略
<script>

   $('#frmmain').live('pageinit',  function(event) {
        $.post('handler/aprvhandler.ashx', { type: 'myParam', cnt: '10' },  function(data) {
            $("#userList").append("<ul data-role='listview'></ul>");
            $.each(data,  function(index, value) {

                 var temp = "<li><a href='aprvdetail.aspx?id=" + value + "'><h3>" + value + "</h3></a></li>";
                $("#userList ul").append(temp);
            });
            $("#userList").trigger("create"); 

            },"json");
    });
</script>
复制代码


 

复制代码
 
//通用页面
< body >
     <!--  Home  -->
     < div  data-role ="page"  data-theme ="b"  id ="frmmain"   data-ajax ="false" >
         < div  data-theme ="b"  data-role ="header" >
             < h4 >
                XXXX系统
             </ h4 >
         </ div >
         < div  data-role ="content"  style ="padding: 15px" >
             < div  data-role ="collapsible-set"  data-theme =""  data-content-theme ="" >
                 < div  data-role ="collapsible"  data-collapsed ="false" >
                     < h3 >
                        用户列表
                     </ h3 >

                     < div  data-role ="content"   id ="userList"  class ="content" ></ div > 

                 </ div >
             </ div >

</ body >
</ html >
复制代码


两种实现方式差不多,只是$.get方法没有json这个参数,所以在代码里面解析。

 

 后台ashx也比较简单,需要引用Jayrock.JSON.dll第三方控件

 

复制代码
<%@ WebHandler Language= " C# " Class= " AprvHandler " %>

using System;
using System.Web;
using Jayrock.Json;
using System.IO;

public  class AprvHandler : IHttpHandler {
    
     public  void ProcessRequest (HttpContext context) {
        HttpContext.Current.Response.ContentType =  " text/plain ";
         string query = HttpContext.Current.Request.Params[ " type "];
         if ( string.IsNullOrEmpty(query))
        {
            HttpContext.Current.Response.Write( " parameter error ");
             return;
        }
         string strJsonText =  @" {'id':1,'count':'4','name':'Alice','list':[1001,1002,1003,1004]} ";
        JsonReader reader =  new JsonTextReader( new StringReader(strJsonText));

        JsonObject jsonObj =  new JsonObject();
        jsonObj.Import(reader);

        HttpContext.Current.Response.Write(jsonObj);

        HttpContext.Current.Response.End();
    }
 
     public  bool IsReusable {
         get {
             return  false;
        }
    }
}
复制代码

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值