我有一个类似的课程:
public class Group
{
public int RecID { get; set; }
public int GroupID { get; set; }
public int Name { get; set; }
}
我得到了这些项目的IList:IList<Group>()
;
现在我尝试返回此列表的javascript数组,以便我可以将其与jquery datatables一起使用
所以我在我的控制器中尝试了以下内容:
return Json(CacheHelper.Groups, JsonRequestBehavior.AllowGet);
但这给了我以下结果:
[
{"GroupID":"1","Name":"Group 1","RecID":5637144589},
{"GroupID":"2","Name":"Group 2","RecID":5637145326}
]
如何使用数据表?
我尝试过这样的事情:
$('#example').dataTable( {
"ajax": '/ajax/data.json'
"columns": [
"Name",
"GroupID",
"RecID"
]
} );
但是这无法加载数据。我认为可能是因为数据采用了错误的json格式,因为它需要像
这样的数据预期的数据格式
{
data: [
1,
"Group 1",
5637144589
],
[
2,
"Group 2",
5637145326
]
}
所以我尝试了以下linq来更改数据:
CacheHelper.Groups.Select(x => new string[] { x.GroupID, x.Name, x.RecID });
但这给了我一个数组数组,没有data
位。
[
["1","Group 1",5637144589],
["2","Group 2",5637145326]
]
有没有办法用linq获取数据?
所以我想问题是
如果不是
答案 0 :(得分:1)
您需要使用以下初始化代码来匹配您的数据结构:
$('#example').dataTable( {
"ajax": {
"url": '/ajax/data.json',
"dataSrc": ""
},
"columns": [
{ "data" : "Name" },
{ "data" : "GroupID" },
{ "data" : "RecID" }
]
});
来自dataSrc属性说明:
请注意,如果您的Ajax源只是返回一个数据数组 显示而不是对象,将此参数设置为空 字符串。