C# jQuery Datatables json AJAX帮助pls“;表“中无可用数据”;
我有一个在C# jQuery Datatables json AJAX帮助pls“;表“中无可用数据”;,c#,jquery,ajax,asp.net-mvc,datatables,C#,Jquery,Ajax,Asp.net Mvc,Datatables,我有一个在$(document).ready函数中生成的表。我还使用jquerydatatables插件。由于某些原因,当页面加载时,表加载,但第一行显示: “表中无可用数据” 这是我的控制器: public string Lowx() { var query = db.Infoes. Include(x => x.Profile). Include(x => x.Car).
$(document).ready
函数中生成的表。我还使用jquerydatatables插件。由于某些原因,当页面加载时,表加载,但第一行显示:
“表中无可用数据”
这是我的控制器:
public string Lowx()
{
var query = db.Infoes.
Include(x => x.Profile).
Include(x => x.Car).
ToList();
return JsonConvert.SerializeObject(query.ToList());
这是我的Ajax功能:
$(document).ready(function (data) {
$('#cars').DataTable({
ajax: {
url: '@Url.Action("lowx")',
type: 'POST',
dataType: 'json',
dataSrc: ""
},
columns: [
{ data: "FirstName", name: "FirstName" },
{ data: "LastName", name: "LastName" },
{ data: "MiddleName", name: "MiddleName" },
{ data: "BirthDate", name: "BirthDate" },
{ data: "CarName", name: "CarName" },
{ data: "CarNumber", name: "CarNumber" },
],
});
});
数据表写入:
看一看。它需要一个包含数据的数组属性“data”的对象,而不是一个直数组
而且
(a) 控制器操作正在返回字符串。您应该返回一个JsonResult
,它为您进行序列化(并适当地设置mime类型等)
理想情况下,您应该只获取所需的数据,而不是检索表中的所有列。这是对您的模式的完整猜测,但是
public JsonResult Lowx()
{
var query = db.Infoes.
Select(x => new()
{
FirstName = x.Profile.FirstName,
LastName = x.Profile.LastName,
MiddleName = x.Profile.MiddleName,
BirthDate = x.Profile.BirthDate,
CarName = x.Car.CarName,
CarNumber = x.Car.CarNumber
});
return Json(new { data = query });
}
(b) 为什么要使用POST请求检索数据?请尝试以下代码:
javascript:
$('#cars').dataTable({
responsive: true,
"searching": true,
"scrollCollapse": true,
dom: 'Blrtip',
"processing": true,
"serverSide": true,
"ajax": $('#cars').data('source'),
"pagingType": "simple_numbers",
"columns": [
{ data: "FirstName"},
{ data: "LastName"},
{ data: "MiddleName"},
{ data: "BirthDate"},
{ data: "CarName",
{ data: "CarNumber"},
],
});
html代码:
<table id="cars" data-source="lowx">
<thead>
<tr role="row">
<th>first name</th>
.....
<th>car number</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
名字
.....
车号
有关详细信息,请访问此url:
默认http动词是GET,但Ajax正在发送POST,您是否尝试添加
[HttpPost]
装饰器?您能在控制台中看到任何错误吗?@derloopkat控制台中出现0错误这可能有帮助:
<table id="cars" data-source="lowx">
<thead>
<tr role="row">
<th>first name</th>
.....
<th>car number</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
var table = $('#example').DataTable( {
ajax: "data.json"
} );
table.ajax.url( 'newData.json' ).load();