asp.net在加载页面中返回数据

asp.net在加载页面中返回数据,asp.net,webforms,Asp.net,Webforms,如果我的页面请求中存在查询字符串param,我希望在页面加载中查询服务器上的数据库,然后将结果返回给客户端。我可以执行查询字符串param check并查询数据库,但是如何将数据返回到页面,在javascript端如何访问该数据 理想情况下,我将返回对象结构的JSON,它将返回它们的数组。是的,返回JSON将是最好的选择。我不确定如何查询数据库(是否使用LINQ或ADO.NET数据表等) 如果您没有要发送的自定义对象类型,我建议您创建一个。然后你应该得到一个数组 例如: public class

如果我的页面请求中存在查询字符串param,我希望在页面加载中查询服务器上的数据库,然后将结果返回给客户端。我可以执行查询字符串param check并查询数据库,但是如何将数据返回到页面,在javascript端如何访问该数据


理想情况下,我将返回对象结构的JSON,它将返回它们的数组。

是的,返回JSON将是最好的选择。我不确定如何查询数据库(是否使用LINQ或ADO.NET数据表等)

如果您没有要发送的自定义对象类型,我建议您创建一个。然后你应该得到一个数组

例如:

public class Person {
   string Name { get; set; }
   int Age { get; set; }
}

Person[] pArr = new Person[5];
然后,您可以使用第三方库,如在JSON中创建该数组的字符串表示

string json = JsonConvert.SerializeObject(product);
然后,通过重写页面的Render方法,将
json
字符串写入响应对象,以便将其发送到客户端

// Don't expect this code to work as it is, but take this as a guidance
Response.Clear();
Response.Write(json);
Response.Close();
在客户端,使用jQuery库向page发送请求,并为您处理JSON响应

$.getJSON('url', function(data) {
  //process data
});
如果您不想为此使用AJAX请求,我的建议如下:

像通常在页面加载中一样使用对象,并将其转换为JSON字符串,如上所述

然后使用ClientScriptManager在加载时在客户端创建JavaScript变量

ClientScript.RegisterClientScriptBlock(typeof(Page), "unique_key", "var myObjectList = " + json, true);
在此之后,当页面加载时,将有一个名为“myObjectList”的变量,该变量包含对象列表,而无需进行不同的AJAX调用

您可以直接在javascript中引用该变量并进行必要的处理


希望这能有所帮助。

So Response.Write(json)可以在Page_Load事件中完成,但是那里的jQuery似乎对服务器进行了单独的回调。我不想那样。我希望在用户第一次浏览主页时,能够将原始请求读取到主页。我该怎么做?onready()是否具有某种参数,即从服务器返回的数据?在这种情况下,不应执行Response.Write()。您应该使用生成的json字符串创建一个javascript变量,将其包含在页面中,并在客户端使用。@user441521,我在末尾添加了一些关于如何避免第二次回调的建议。看看有没有道理。