我希望用数据库查询的结果填充一个 JavaScript 数组。据我了解,一个好的方法是在我的服务器上使用序列化的 XML 或 JSON 文件填充一堆目录,然后我的 JS 函数可以读取这些文件,而无需访问数据库。这是真的?数据库应该在用户交互时写入这些 XML 文件,还是应该预先填充它们?
2 回答
根据您提供的详细信息:
我个人会创建一个 Web 服务端点,使用 JSON.NET 或等效方法将您的 linq 查询序列化为 JSON。然后可以在客户端页面中使用 ajax 调用端点。
您可以在ASP.NET上查看此示例,了解如何创建 asmx(旧版)Web 服务。您还可以查看使用 [WebMethod] 属性的示例。
代码隐藏文件中的 Web 方法。
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
public string GetMyQueryResultsAsJson()
{
    var results = GetQueryResults();
    var jss = new JavaScriptSerializer();
    string json = jss.Serialize(results);
    return json;
}
客户端页面上的 ajax 调用:
function loadData() {
   var myArray = []; 
   $.getJSON("<%= ResolveUrl("~/MyPage.aspx/GetMyQueryResultsAsJson") %>", function (data) {
       $.each(data, function(obj) {
           myArray.push([obj.id, obj.someValue, obj.AnotherValue]);
       });
   });
}
我使用jQuery ajaxreuringgeneric http handler我json
创建了处理程序并将我的业务逻辑放在那里。
它以json
我迭代json使用 jquery 的形式返回结果。
并创建了我的 html 表单。
编辑 1
这里有一些有用的链接
http://www.codeproject.com/Articles/203621/Call-HTTPhandler-from-jQuery-Pass-data-and-retriev 
http://www.sharepointnutsandbolts.com/2010/11/sp2010- ajax-part-4-returning-json-from.html
编辑 2
您还可以利用 jtemplate 
http://www.joe-stevens.com/2010/01/05/using-the-jtemplate-jquery-plugin-with-ajax-and-asp-net/ 
http://encosia .com/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/