【发布时间】:2018-01-19 14:33:13
【问题描述】:
我有一个 MVC 项目,它(通过控制器)连接到 MS SQL Server,获取数据集,并使用以下结构将其显示在 DataTables 上:
$(document).ready(function () {
// Call table data from controller action
$.getJSON("/Home/MyAction", { DateShow: "@ViewBag.TblCurrentDate" },
function (json) {
// Append each row to html table
var tr;
for (var i = 0; i < json.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + json[i]["Column Name 1"] + "</td>");
tr.append("<td>" + json[i]["Column Name 2"] + "</td>");
tr.append("<td>" + json[i]["Column Name 3"] + "</td>");
...
tr.append("<td>" + json[i]["Column Name 20"] + "</td>");
$('#MyTable').append(tr);
}
// Set table name and apply datetable settings
var dt_olktable = $('#MyTable').DataTable()
});
});
因此,如果我从 SQL 中获取 1500 行和 20 列的数据集,它会完美运行(1-2 秒)。如果我有 2000 行或更多行,有 20 列,我会在 VS2015 诊断工具的事件部分看到一个“错误页面” - 就在事件“GET”/Home/MyAction“之后。我试图设置断点c# 控制器类。控制器已成功获取数据集,将其放入 json 并将 json 返回到之前显示的 jquery 代码。此外,Chrome 开发工具面板中没有错误。我所知道的:当我将断点设置为
var tr;
行,断点永远不会被触发,所以就在附近发生了一些事情
$.getJSON("/Home/MyAction", { DateShow: "@ViewBag.TblCurrentDate" },
function (json) {
行。
如果我减少数据数量(例如 1500 行,20 列),一切正常!也许,2000 行 * 20 列对于使用客户端处理的 DataTables 来说太多了?或者可能有类似溢出的东西
for (var i = 0; i < json.length; i++) {
行?
【问题讨论】:
-
在浏览器的调试工具中调试时,服务器对该AJAX请求的响应是什么?如果是“错误页面”,错误是什么?
-
没有错误页面或类似的东西。下面的答案解释了原因。
-
下面的答案在这方面具有误导性。浏览器中的调试工具可以显示服务器对 AJAX 请求的响应。你试过这样的调试吗?该问题表明未到达成功回调中的断点,因此似乎预期的响应没有从服务器返回。那么从服务器返回什么?
-
我试过 Crome 开发工具,但没有任何显示。我看到出现问题的唯一地方(浏览器中未完成的网页除外)是 Visual Studio(请参阅我的问题)。
-
“什么都没有显示” - 具体来说,你看到了什么? “什么都没有显示”是什么意思?服务器的响应是一个空白页面吗?响应的 HTTP 状态代码是什么?如果响应内容不包含任何有用的内容,Web.config 是否设置为不显示错误?如果你改变它会发生什么?
标签: jquery json asp.net-mvc datatables