asp.net怎么用jquery $.post进行数据库查询,并且返回一个 List<自定义类> 在客户端如何接收结果?

asp.net怎么用jquery $.post进行数据库查询,并且返回一个 List<自定义类> 在客户端如何接收结果?,第1张

可序列化的一个数据对象

[Serializable]

public class Person

{

public int Id { getset}

public string Name { getset}

}

一个ashx的一般处理程序

List<Person>list = new List<Person>()

Person p1=new Person(){Id=1,Name="张三1"}

Person p2=new Person(){Id=3,Name="张三2"}

list.Add(p1)

list.Add(p2)

//序列化对象为JSON字符串返回浏览器

JavaScriptSerializer ser = new JavaScriptSerializer()

string json = ser.Serialize(list)

Context.Response.Write(json)

//模拟的数据格式 [{"Id":"1","Name":"张三1"},{{"Id":"2","Name":"张三2"}}]

HTMLPOST请求

$.post("json.ashx", { "name": "123" }, function (data) {

//data[0].Id 这个就是json数据获取方式

//你可以遍历 *** 作

}, "json")

//建立WebRequest对象,url目标地址

HttpWebRequest req =(HttpWebRequest)WebRequest.Create(url)

//这里的s 是啥个东西??搞不懂

string s = "要提交的数据"

//将LoginInfo转换为byte[]格式,这里的LoginInfo应该是你要传输的数据

byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(LoginInfo)

//设置请求为POST方式,

req.Method = "POST"

//设置请求类型

req.ContentType = "application/x-www-form-urlencoded"

//请求发送的数据长度, 这里就很清楚了,请求数据是从LoginInfo转换来的

//前面的代码byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(LoginInfo)

req.ContentLength = requestBytes.Length

//建立请求的输入流

Stream requestStream = req.GetRequestStream()

//从requestBytes中读取数据到输入流中

requestStream.Write(requestBytes, 0, requestBytes.Length)

//关闭输入流

requestStream.Close()

//获取响应对象

HttpWebResponse res = (HttpWebResponse)req.GetResponse()

//获取服务器返回流

StreamReader sr = new StreamReader(res.GetResponseStream(),System.Text.Encoding.Default)

//读取返回流数据,并赋值给backstr

string backstr =sr.ReadToEnd()

//页面输出line???? 应该是backstr 吧

Response.Write(line)

//关闭* 2, 不解释了

sr.Close()

res.Close()

给附加分吧!!!!!

有三种方式可以进行参数传递:(1). Form (2). ?id= (3).cookie

Request.Form是取post传值

表单的post传值,Ajax post异步传值则需要用Request.Params来获取传过来的参数


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9876136.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存