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文章: