【发布时间】:2012-07-05 14:42:25
【问题描述】:
我正在尝试在 ASP.NET MVC 应用程序中使用 JQuery Datatable 插件。但是,虽然我的控制器将 JSON 数据返回给插件,但表格显示了 Loading... 消息并卡在那里。
这是我的控制器,
public ActionResult GetCompanies(jQueryDataTableParamModel param)
{
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = 97,
iTotalDisplayRecords = 3,
aaData = new List<string[]>() {
new string[] {"1", "a1", "a2", "a3"},
new string[] {"2", "b1", "b2", "b3"},
new string[] {"3", "c1", "c2", "c3"}
}
}, JsonRequestBehavior.AllowGet);
}
这是datatable插件的初始化。
$('#companyDataTable').dataTable({
bProcessing: true,
sAjaxSource: '@Url.Action("GetCompanies", "Company")'
});
这是我的表格截图。
这是从Company/GetCompanies返回给插件的JSON数据
{ "sEcho":null,
"iTotalRecords":97,
"iTotalDisplayRecords":3,
"aaData":[ ["1","a1","a2","a3"],
["2","b1","b2","b3"],
["3","c1","c2","c3"]
]
}
jQuerDataTableParamModel 是一个显示为here 的类。我也试过这个question 的答案,但没有一个对我有用。
编辑:
这就是插件请求的样子。
有什么想法吗?
谢谢
【问题讨论】:
-
您的
param模型由于某种原因未初始化。尝试使用开发者工具在浏览器中检查请求参数。另外,尝试更改参数名称 - 也许您还有另一个名为param的请求参数。 -
将我的来源更改为 sAjaxSource: 'GetCompanies'。现在它正在工作。你知道这可能是什么原因吗?顺便说一句,谢谢你指导我。
-
没问题。只是
'GetCompanies'?没有@Url.Action电话?如果您当前在/Company页面上,那应该可以工作...然后应该请求/Company/GetCompanies。不知道为什么它不适用于@Url.Action。
标签: jquery asp.net-mvc json datatables