【问题标题】:Error ajax error-datatables warning: table id -example错误 ajax 错误数据表警告:表 id -example
【发布时间】:2019-01-27 21:07:39
【问题描述】:

我点击“确定”并出现控制台错误:

我是编程新手,我需要帮助。我需要使用json 从几个数据结构中形成一个数据表。在这一点上,我被困在这个错误上。帮忙请理解

控制器中的函数是json。

[HttpGet]
            public JsonResult Lowx()
            {
                var query = db.Infos.
                    Include(x => x.Profile).
                    Include(x => x.Cars).
                    ToList();

                return Json(new { data = query });
            }

表格和 ajax

 <table class= "table" id="example" >
            <thead>
                <tr >
                    <th>first name</th>
                    <th>last name</th>
                    <th>middle name</th>
                    <th>birthday</th>
                    <th>carname</th>
                    <th>carnumber</th>
                </tr>
            </thead>
            <tbody></tbody>

        </table>

        <script src="~/Scripts/jquery-1.10.2.min.js"></script>
        <script src="~/Scripts/bootstrap.min.js"></script>
        <script src="~/Scripts/jquery.unobtrusive-ajax.min.js"></script>
        <script src="~/Scripts/DataTables/jquery.dataTables.min.js"></script>
        <script type="text/javascript">

            $(document).ready(function (data) {
             $("#example").DataTable({
      ajax: {
          url: '@Url.Action("Lowx")',
          type: 'GET',

          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" }
      ]
    });

控制台:加载资源失败:服务器响应状态为 500(内部服务器错误)。

阿尔弗雷德和所有人的屏幕截图)

截图复制粘贴

【问题讨论】:

  • 你能分享完整错误信息的截图吗?您可以尝试将控制器名称添加到url: url: '@Url.Action("Lowx", "ControllerName")',
  • @Alfred 添加控制器名称没有帮助。我现在分享的截图有问题。
  • @Alfred 请帮帮我,我还没有找到原因

标签: c# jquery ajax asp.net-mvc datatables


【解决方案1】:

尝试将此示例复制粘贴到您的视图文件中。当它工作正常时,更改 url 以解析您自己的数据,它应该可以工作。请注意,该操作是 POST,而不是 GET。

[HttpPost]
public JsonResult Lowx()
{
    var query = db.Infos.Include(x => x.Profile).Include(x => x.Cars).ToList();
    return Json(new { data = query });
}

http://jsfiddle.net/bababalcksheep/ntcwust8/

$(document).ready(function () {
    var url = 'http://www.json-generator.com/api/json/get/cbEfqLwFaq?indent=2';
    var table = $('#example').DataTable({
        'processing': true,
        'serverSide': true,
        'ajax': {
        'type': 'POST',
        'url': url,
        'data': function (d) {
            return JSON.stringify( d );
        }
     }
  });
  $('#reload').click(function (e) {
      table.ajax.reload();
  });
  $('.toggleCols').click(function (e) {
      e.preventDefault();
      var column = table.column( $(this).attr('data-column') );
      column.visible( ! column.visible() );
  });    
});

【讨论】:

  • 复制粘贴和 f5= 我在帖子中分享屏幕截图
  • 复制粘贴并 f5=i 在帖子中分享截图
【解决方案2】:

请按如下方式声明DataTable:

$('#example').DataTable({
    "ajax": {
        "url": '@Url.Action("Lowx")',
        "dataSrc": ""
    },
    "columns": [
        { "FirstName", "data.Profile.FirstName" },
        { "LastName", "data.Profile.LastName" },
        { "MiddleName", "data.Profile.MiddleName" },
        { "BirthDate", "data.Profile.BirthDate" },
        { "CarName", "data.Cars.CarName" },
        { "CarNumber", "data.Cars.CarNumber" }
    ]
});

在 Chrome 中,查看Network 选项卡以查看 Ajax 调用是否正确形成。在 Visual Studio 中,在 Lowx() 的开头放置一个 Breakppoint 以查看是否到达代码。请分享您的发现。

【讨论】:

  • 我在帖子中分享截图
  • 404 错误是因为您缺少一个 favicon,ico 文件(检查根文件夹),该文件用于在浏览器的地址栏中显示图标。
猜你喜欢
  • 2019-12-14
  • 2016-10-25
  • 2021-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-22
相关资源
最近更新 更多