Asp.net 将LINQ到SQL查询的结果转换为XML/JSON

Asp.net 将LINQ到SQL查询的结果转换为XML/JSON,asp.net,database,linq-to-sql,webforms,Asp.net,Database,Linq To Sql,Webforms,我希望用数据库查询的结果填充JavaScript数组。据我所知,一个好的方法是用序列化的XML或JSON文件填充服务器上的一堆目录,然后我的JS函数就可以读取这些文件,而无需访问数据库。这是真的吗?数据库应该在用户交互时写入这些XML文件,还是应该预填充这些文件?根据您提供的详细信息: 我个人会创建一个Web服务端点,使用JSON.NET或等效工具将linq查询序列化为JSON。然后可以在客户端页面中使用ajax调用端点 您可以查看这个示例,了解如何创建asmx(遗留)web服务。您还可以查看使

我希望用数据库查询的结果填充JavaScript数组。据我所知,一个好的方法是用序列化的XML或JSON文件填充服务器上的一堆目录,然后我的JS函数就可以读取这些文件,而无需访问数据库。这是真的吗?数据库应该在用户交互时写入这些XML文件,还是应该预填充这些文件?

根据您提供的详细信息:

我个人会创建一个Web服务端点,使用JSON.NET或等效工具将linq查询序列化为JSON。然后可以在客户端页面中使用ajax调用端点

您可以查看这个示例,了解如何创建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]);
       });
   });
}
函数loadData(){
var myArray=[];
$.getJSON(“),函数(数据){
$。每个(数据、功能(obj){
push([obj.id,obj.someValue,obj.AnotherValue]);
});
});
}

我使用了
jqueryajax
通用http处理程序
返回
json

我创建了handler并将业务逻辑放在那里。
它以
json

的形式返回结果 我使用jquery迭代了
json

并创建了我的html表单

编辑1 以下是一些有用的链接

编辑2 您还可以使用jtemplate


谢谢你的回答!看起来我有一些研究要做:)我建议使用
json
而不是
xml
。和
http处理程序
over
web服务
,用于jquery调用。我刚看完你链接的视频。视频中的家伙建议将查询代码放在与.aspx页面分开的类中。您建议我将“GetQueryResults()”放在哪里?在与WebMethod相同的代码中,或者在其他地方?是的,这是正确的,将javascript分离到自包含的文件中是很好的做法。关于GetQueryResults(),当前如何从数据库检索数据?你有数据访问层吗?我目前正在检索我的.aspx页面中标记内的数据。好的,如果你将其移到后面的代码,那么你的page.aspx.cs。然后您可以在WebMethodlet中调用该方法