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

jQuery asp.net 用json格式返回自定义对象

2010-04-07 00:00 896 查看
客户端用一个html页面调用一个ashx文件(一般http处理程序),返回 json格式的自定义对象:
html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<title>ajax测试</title> 
<script src="js/jquery-1.2.3.js" type="text/javascript"></script><!-这里引用了jQuery框架-> 
</head> 
<body> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$("#Button2").click(function(){ 
var url="handler.ashx?&name="+$("#Text1").val()+"&age="+$("#Text2").val(); 
$.get(url,function(result){ 
var obj=eval("("+result+")"); 
alert("姓名:"+obj.Name+"\n"+"年龄:"+obj.Age); 
}) 
}) 
}) 
</script> 
<input id="Button2" type="button" value="button" /><span lang="zh-cn">姓名:</span><input id="Text1" 
type="text" /><span lang="zh-cn">年龄:</span> 
<input id="Text2" 
type="text" /> 
</body> 
</html>

handler.ashx文件:
<%@ WebHandler Language="C#" Class="Handler" %> 
using System; 
using System.Web; 
using System.Runtime.Serialization.Json; 
using System.Collections; 
using System.Runtime.Serialization; 
public class Handler : IHttpHandler { 
public void ProcessRequest(HttpContext context) 
{ 
context.Response.ContentType = "text/plain"; 
string name = context.Request.Params["name"].ToString(); 
string age = context.Request.Params["age"].ToString(); 
person p1 = new person(name,age); 
DataContractJsonSerializer djson = new DataContractJsonSerializer(p1.GetType());//将对象序列化为 JavaScript 对象表示法 (JSON) 
djson.WriteObject(context.Response.OutputStream, p1); 
} 
public bool IsReusable { 
get { 
return false; 
} 
} 
[DataContract]//要序列化,一定要加这个属性 
public class person 
{ 
[DataMember]//属性“DataMember”只在“property, indexer, field”声明中有效。 
public string Name="无名士"; 
[DataMember] 
public string Age="0"; 
public override string ToString() 
{ 
return "姓名:" + Name + "年龄:" + Age; 
} 
public person(string name,string age)//自定义类person 
{ 
this.Name = name; 
this.Age = age; 
} 
public person() 
{ } 
} 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: