1

如果我的页面请求中存在查询字符串参数,我想在 Page_Load 中查询服务器上的数据库,然后将结果返回给客户端。我可以进行查询字符串参数检查并查询数据库,但是如何将数据返回到页面以及在 javascript 端如何访问该数据?

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

4

1 回答 1

2

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

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

例子:

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

Person[] pArr = new Person[5];

然后,您可以使用这样的第三方库在 JSON 中创建该数组的字符串表示形式。

string json = JsonConvert.SerializeObject(product);

然后json,通过覆盖页面的 Render 方法,将该字符串写入 Response 对象,以便将其发送到客户端。

// 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 中引用该变量并进行必要的处理。

希望这可以帮助。

于 2012-12-01T13:32:02.957 回答