如果我的页面请求中存在查询字符串参数,我想在Page_Load中查询服务器上的数据库,然后将结果返回给客户端。我可以执行查询字符串参数检查和查询数据库,但如何将数据返回到页面,在javascript方面如何访问该数据?
理想情况下,我会返回一个对象结构的JSON,它会返回一个数组。
答案 0 :(得分:2)
是的,返回JSON将是最佳选择。我不确定你如何查询你的数据库(你使用LINQ或ADO.NET DataTables等)
如果您没有要发送的类型的自定义对象,我建议您创建一个。然后你应该得到它们的数组。
示例:
public class Person {
string Name { get; set; }
int Age { get; set; }
}
Person[] pArr = new Person[5];
然后你可以使用像this这样的第三方库来用JSON创建该数组的字符串表示。
string json = JsonConvert.SerializeObject(product);
然后将json
字符串写入Response对象,以便通过覆盖页面的Render方法将其发送到客户端。
// Don't expect this code to work as it is, but take this as a guidance
Response.Clear();
Response.Write(json);
Response.Close();
在客户端使用jQuery库向页面发送请求,并为您处理JSON响应。
$.getJSON('url', function(data) {
//process data
});
如果您不想对此使用AJAX请求,我的建议如下:
像在page_load中一样使用对象,并将其转换为JSON字符串,如上所述。
然后使用ClientScriptManager在加载时在客户端创建JavaScript变量。
ClientScript.RegisterClientScriptBlock(typeof(Page), "unique_key", "var myObjectList = " + json, true);
在页面加载之后,您将拥有一个名为“myObjectList”的变量,其中包含对象列表,而无需进行不同的AJAX调用。
您可以直接在javascript中引用该变量并进行必要的处理。
希望这有帮助。