【发布时间】: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"]
]
}
如何解决这个问题提前谢谢
【问题讨论】:
-
请编辑您的问题以包含从您的
/patientsURL 返回的数据。当然,该数据需要是有效的 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 - 因此你得到的错误。