我希望用数据库查询的结果填充一个 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 ajax
reuringgeneric 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/