AJAX实例:ASP.NET中的文本及包括JSON响应处理

在AJAX的响应数据处理部分文本(text)格式是将整个文本的内容返回给 web 客户端来进行处理,而在文本格式中的JSON格式处理比一般文本稍复杂些。

文本格式

我们先来看一个文本格式的实例:首先将每个优惠券数据绑定后通过列表(list)控件遍历出来,然后将id做为GET方式的querystring传给服务端来进行处理,服务端返回的数据格式是文本处理方式。

利用这个解决问题的办法下面我们需要做购物车的功能,点击“加入购物车”按钮之后不用刷新整个页面而让用户觉得有几秒延迟的情况。首先来看点击"加入购物车"按钮时是如何放id数据值的。ASP.NET代码部分:

<button onclick='addShopcart("getShopcart.ashx?id=<%#Eval("id") %>")'>加入购物车</button>
<div id="results"></div>

接下来是javascript的request对象[1]的核心代码部分:

document.getElementById('results').innerHTML = request.responseText;

这行的意思是:往id名为results的div容器中加服务端响应客户端请求的文本内容。那么,服务端的代码如下:

int id = int.Parse(context.request.QueryString["id"].ToString());
DataTable shopcartTable = DBAccess.GetShopcart(id);
context.Response.Write("<span>"+shopcartTable.Rows[0]["name"].ToString()+"</span>");

在这里,DBAccess.GetShopcart(id) 的结果是返回一条记录,在文本文件的内容可以把HTML格式写好后返回给响应文本(responseText)。

JSON格式

接下来,我们来讨论JSON格式的处理。

1.JSON格式是怎么样的语法呢?请看下面的JS脚本代码:

{'n': '1'}

注:除了上面的JSON格式外,还有数组的格式(本文略,详情请参见:http://www.json.org/json-zh.html)。

2.JSON格式在ASP.NET中怎么处理?

JSON格式是文本文件,在ASHX文件(一般处理文件)进行处理后,Response.Write到呈现的页面中,然后由客户端的JS脚本去异步回调。下面是ASHX中 ProcessRequest方法的示例代码:

context.Response.ContentType = "text/plain";
context.Response.Write("{\'n\':\'1\'}");

然后,客户端JS异步回调。下面是采用了MOOTOOLS框架的示例代码:

var ajax=new Request.JSON({
    method: 'get',
    url: 'ajaxjson.ashx',
    onComplete: function(obj, jsontext) {
        json = JSON.decode(jsontext);
        $('result').innerHTML = json.n;
    }
}).send();

JSON.decode()方法的作用是将文本转成JS对象。json.n -- 使用标准点记法来访问调用JSON格式中的名值对(在这为'1')属性。它表示如下json对象实例:

var json = { 'n': '1'}

最后,JS事件驱动后,在id为result的元素(element)容器中,放入上面的1这个值。

(完)

AJAX 系列blog文章:

AJAX:XHR的入门

AJAX 实例:ASP.NET 服务端的XML处理

Ajax:用异步回调对ASP.NET 开发重构实例

posted on 2009-07-29 13:47  豆豆の爸爸  阅读(1657)  评论(0编辑  收藏  举报