Posted in Javascript onApril 07, 2010
客户端用一个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() { } } }
jQuery asp.net 用json格式返回自定义对象
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@