Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html DataTable从dataSrc未知参数检索json_Html_Ajax_Datatables - Fatal编程技术网

Html DataTable从dataSrc未知参数检索json

Html DataTable从dataSrc未知参数检索json,html,ajax,datatables,Html,Ajax,Datatables,当将结果从ajax填充到datatables时,我遇到了一个问题,我已经验证了ajax函数是否有效并返回了结果 以下是我的javascript代码: function getBookingRecords() { tblDirectLoanReceipt = $('#tbBooking').DataTable(); tblDirectLoanReceipt.destroy(); tblDirectLoanReceipt = $('#tbBooking').DataTable({ auto

当将结果从ajax填充到datatables时,我遇到了一个问题,我已经验证了ajax函数是否有效并返回了结果

以下是我的javascript代码:

function getBookingRecords() {
tblDirectLoanReceipt = $('#tbBooking').DataTable();
tblDirectLoanReceipt.destroy();
tblDirectLoanReceipt = $('#tbBooking').DataTable({
    autoWidth: true,
    initComplete: function () {
    },
    processing: true,
    serverSide:true,
    ajax: {
        type: 'post',
        contentType: 'application/json; charset=utf-8',
        url: '/Booking/RetrieveBookingRecords',
        dataSrc: function (json) {
            console.log(json);
            return json;
        },
        columns: [
            { data: 'dsm_description' },
            { data: 'code' }
        ]
    }
});
}

和我的html代码:

@section Scripts
{
    @Helper.LoadCustomJS("ViewsJS/Booking/JS_Booking.js", Url)
}

<div class="row">
    <div class="col-md-12">
        <div class="table-responsive">
            <table id="tbBooking">
                <thead>
                    <tr>
                        <th>dsm_description</th>
                        <th>code</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </div>
    </div>
</div>
@节脚本
{
@LoadCustomJS(“ViewsJS/Booking/JS_Booking.JS”,Url)
}
dsm_描述
代码
我怎样才能解决这个问题?我错过了什么?感谢您提前提供的帮助:)

更新:

误差结果


您应该尝试确保从ajax返回的json数据的格式如下所示

{
  "data": [
    {
      ...   
      "dsm_description": "Sample description 1",
      "code": "Sample code 1",
      ...
    },
    {
      ...   
      "dsm_description": "Sample description 2",
      "code": "Sample code 2",
      ...
    }]
}   
要格式化返回的json数据,可以尝试使用库json.NET

var listData = new List<Dictionary<string,object>>();  
....
var result = new {Data = listData};
return Content(JsonConvert.SerializeObject(result), "application/json");
var listData=new List();
....
var result=new{Data=listData};
返回内容(JsonConvert.SerializeObject(结果),“application/json”);
您能试试这个吗:

function getBookingRecords() {
  tblDirectLoanReceipt = $('#tbBooking').DataTable();
  tblDirectLoanReceipt.destroy();
  tblDirectLoanReceipt = $('#tbBooking').DataTable({
    autoWidth: true,
    initComplete: function() {},
    processing: true,
    serverSide: true,
    ajax: {
      type: 'post',
      contentType: 'application/json; charset=utf-8',
      url: '/Booking/RetrieveBookingRecords',
      dataSrc: "",
      columns: [{
        data: 'dsm_description'
      }, {
        data: 'code'
      }]
    }
  });
按照我的建议

请注意,如果您的Ajax源代码只是将一个数据数组返回给 显示,而不是对象,将此参数设置为空 绳子


希望能有帮助。

怎么办?我以List()@trung duong的形式返回数据,您是使用哪个库将列表序列化为Json,还是在控制器中使用JsonResult返回数据?我只是在控制器中使用Json函数,我想您可以尝试将其封装在一个动态对象中,如var result=new{data=};然后通过Json(result)返回它(我还没有尝试过)。我已经更新了我的答案以使用Json.net库(它是完全免费的),请检查它,然后在您的
dataSrc
中使用一个空字符串替换它<代码>请注意,如果Ajax源代码只是返回要显示的数据数组,而不是对象,请将此参数设置为空字符串。