首页 > 解决方案 > DataTables 警告:表 id=患者 - 无效的 JSON 响应。有关此错误的更多信息,请参阅 http://datatables.net/tn/1

问题描述

我有这个 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"]
    ]
}

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

标签: asp.net-mvcdatatables

解决方案


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

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

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

data: "jeton"

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

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

title: "jeton"

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

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

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

在此处输入图像描述

我认为这就是解决问题所需要做的一切。

额外说明:

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

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

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

推荐阅读