【问题标题】:JQuery Datatable not loading Json data from MVC ControllerJQuery Datatable 未从 MVC 控制器加载 Json 数据
【发布时间】:2018-09-07 04:26:01
【问题描述】:

我有一个 Asp.Net MVC 5 网络应用程序。我正在使用 JQuery Datatables v1.10.16 在其中一个剃须刀视图中显示表格数据。返回到数据表的数据是通过 ajax 调用 并返回 Json

这是我的观点

<table id="data_table" class="display" style="width:100%">
    <thead>
        <tr>
            <td>Evaluation ID</td>
            <td>Applicant Name</td>
        </tr>
    </thead>
    <tfoot>
        <tr>
            <td>Evaluation ID</td>
            <td>Applicant Name</td>
        </tr>
    </tfoot>
</table>

<script type="text/javascript">
    $(document).ready(function () {

        $('#data_table').DataTable({
            "ajax": '/EvalDashboard/GetEvaluationData',
            "dataSrc": 'evaluations',
            "columns": [
            { data: 'evaluationID' },
            { data: 'applicantName' }
            ]
        });

    });
</script>

这是我在控制器 EvalDashboard 中调用的方法

    public JsonResult GetEvaluationData()
    {

        var evaluations = _evalService.GetAllCecEvaluations(null, null)
            .Take(20).Select(x => new
            {
                evaluationID = x.EvaluationID,
                applicantName = x.tblcourseapplicant.FullName
            }).ToList();

        return Json(evaluations, JsonRequestBehavior.AllowGet);
    }

当我运行应用程序时,我可以看到正在调用方法GetEvaluationData(),但是,视图中的数据表没有返回任何数据,我只收到一条消息说正在加载...

我不确定问题是否是因为我在我的方法中返回了一个匿名类型。

有人可以帮忙吗?

谢谢。

【问题讨论】:

    标签: json ajax asp.net-mvc datatables


    【解决方案1】:

    我认为你需要做的只是以下

    </script>
    $(document).ready(function () {
        $('#example').dataTable({
            "ajax": "/Home/Index",
             "columns": [
                        { "data": "FirstName" },
                        { "data": "LastName" },
                        { "data": "Username" },
                        { "data": "Password" },
                        ]
        });
    });
    </script>
    

    不需要处理和服务器端,当您有大量数据并希望在服务器端完成分页和排序时使用它们,而您的代码中不是这种情况

    【讨论】:

      【解决方案2】:

      问题是我没有像这样在 Json 返回语句中包含关键字data

      return Json(new { data = evaluations }, JsonRequestBehavior.AllowGet);
      

      这解决了我遇到的问题。

      【讨论】:

        猜你喜欢
        • 2019-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-02
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 2023-03-29
        相关资源
        最近更新 更多