MVC + Datatables错误取决于表行数

时间:2018-01-19 14:33:13

标签: jquery json asp.net-mvc datatables

我有一个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 Diagnostoc工具的事件部分看到一个“错误页面” - 就在事件“GET”/ Home / MyAction“之后。我试着设置一个断点c#controller class。控制器已成功获取数据集,将其放入json并将json返回到之前显示的jquery代码。此外,Chrome Dev Tools面板中没有错误。我所知道的:我把断点放到

var tr;

行,断点永远不会被触发,所以在

附近发生了一些事情
$.getJSON("/Home/MyAction", { DateShow: "@ViewBag.TblCurrentDate" },
            function (json) {

行。

如果我减少数据的数量(f.e. 1500行,20列),一切正常!对于使用客户端处理的DataTables,2000行* 20列可能太多了吗?或者也许有像溢出的东西

for (var i = 0; i < json.length; i++) {

行?

1 个答案:

答案 0 :(得分:0)

$.getJSON()函数只有success回调。它没有fail回调,因此如果有任何异常,它通常会无声地失败,即使在调试中也无法看到错误。

将其更改为$ajax(),为fail回调提供函数,在其中放置断点,您将看到错误。