【问题标题】:DataTables warning: table id=patients - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1DataTables 警告:表 id=患者 - 无效的 JSON 响应。有关此错误的更多信息,请参阅 http://datatables.net/tn/1
【发布时间】:2020-06-20 16:35:32
【问题描述】:

我对这个 Datatable Jquery 有问题我收到这个错误:DataTables 警告:table id=patients - Invalid JSON response。有关此错误的更多信息,请参阅http://datatables.net/tn/1

我在控制器上执行此功能:

  [HttpGet]
            public JsonResult LoadPatients()
            {
                // Browser list
                var totalPatientsList = _unitOfWork.Patients.GetPatients();
    
                var filteredResult = from b in totalPatientsList
                                     select new[] {b.Jeton, b.Nom, b.TelePhone, b.Adresse, b.Villes.Nom,b.Id.ToString()};
    
                return Json(new
                {
                    data =filteredResult
                },
                  JsonRequestBehavior.AllowGet);
            }
and i call on index view :

$(document).ready(function () {
            var table = $("#patients").DataTable({
                ajax: {
                    url:"/patients/LoadPatients",
                    dataSrc: ""
                },
                columns: [
                    {
                        data: "jeton"
                        
                    },
                    {
                        data: "nom"
                    },
                    {
                        data: "telephone",
                        render: function (data) {
                            return data.toString().replace(
                              /(\d\d\d)(\d\d\d)(\d\d\d\d)/g, '$1-$2-$3');
                        }
                    },
                    {
                        data: "adresse"
                    },
                    {
                        data: "villes.nom"
                    },
                    {
                        data: "id",
                        render: function (data, type, patient) {
                            return "<a href='/patients/details/ " + patient.id + "' class='btn btn-default btn-xs'>" + "<i class='fa fa-folder'></i>View</a>" +
                                //"<button class= 'btn-link js-detail' data-detail-id=" + data + "><i class='fa fa-pencil-square'></i></button>" +
                                "<button class= 'btn btn-danger btn-xs js-delete' data-patient-id=" + data + "><i class='fa fa-trash-o'></i>Delete</button>";
                        }
                    }

                ]
            });

我在 chrome 上检查结果我明白了:

{
    "data": [
        ["0002020", "patienta", "0670707070", "Zone franche", "Tan", "1"],
        ["0002029", "tst", "0524242424", "Ma", "M", "10"]
    ]
}

如何解决这个问题提前谢谢

【问题讨论】:

  • 请编辑您的问题以包含从您的/patients URL 返回的数据。当然,该数据需要是有效的 JSON。 (此外,您问题中的链接向您展示了如何自己诊断此问题。)
  • @andrewjames 我得到了这个响应,但数据没有显示在数据表上
  • 是的 - 可以理解。但是会有从 URL 发送的数据。您应该可以在任何浏览器中打开该 URL(只需将完整的 URL 放入地址栏中),或按照链接 (this one) 中提到的诊断步骤进行操作。
  • @andrewjames 当我得到网址时我没有数据我只有这个网址的截图:localhost:56778/Patients/Indexibb.co/R3kNVhF
  • URL localhost:56678/patients 是您的 DataTables 页面试图在其 ajax 调用中访问的 URL,以获取它试图显示的原始 JSON 数据。但它看起来好像您的 JSON 数据在其他地方 - 而不是在那个 URL 上 - 因为那个 URL 只是将您带到 DataTables 网页本身(循环)。这是 HTML,而不是 JSON - 因此你得到的错误。

标签: asp.net-mvc datatables


【解决方案1】:

您的 JSON 没有任何标签 - 每行只是一个数据数组,例如:

["0002020", "patienta", "0670707070", "Zone franche", "Tan", "1"]

这意味着您不能使用这样的数据标签:

data: "jeton"

因为您的 JSON 数据中不存在标签 jeton

因此,您可以将所有这些 data:... 值更改为 title"... - 例如:

title: "jeton"

这意味着数组中的第一个值(即“0002020”)将出现在表格的第一列 - 列标题将为“jeton”。

然后表格中的第二列将包含“patienta”,并将使用“nom”的列标题 - 依此类推。

这是我使用您的数据的示例:

我认为你需要做的就是解决这个问题。

补充说明:

不要忘记更新 ajax URL - 看起来您可能已经这样做了。

您可能还需要从 ajax 部分删除以下 dataSrc: "" 行,所以它是这样的:

ajax: {
  url:"/patients/LoadPatients"
},
  • 但我不确定。尝试两种方式。

【讨论】:

  • 谢谢(或者我应该说“拍手”)@davidkonrad - 非常感谢。
  • @andrewjames 不适合我,我使用 title nom 而不是 data 但没有用
  • { Jeton: "jeton" }, { Nom: "nom" }, { Telephone: "telephone", render: function (telephone) { return data.toString().replace( /(\ d\d\d)(\d\d\d)(\d\d\d\d)/g, '$1-$2-$3'); } },{地址:“地址”},
  • 使用“标题”而不是“数据”。所以,例如,columns: [ { title: "jeton" }, { title: "nom" }, ... ] 等等......
  • 并注意 davidkonrad 所说的 - 你确实需要删除 dataSrc: ""
猜你喜欢
  • 2019-08-15
  • 1970-01-01
  • 2022-01-13
  • 1970-01-01
  • 2019-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多