您的位置:首页 > Web前端 > JavaScript

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

2015-01-21 10:54 417 查看
网上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;

}

}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: