【问题标题】:DataTables warning: table id=users - Ajax error. when passing parameter to it using jqueryDataTables 警告:表 id=users - Ajax 错误。使用 jquery 将参数传递给它时
【发布时间】:2021-04-27 14:31:24
【问题描述】:

将参数传递给数据表 jQuery 时出现此错误。 如果我将控制器更改为此 public ActionResult GetUsers(int divisionId) 没有参数它工作正常,但我需要传递参数。

DataTables 警告:表 id=users - Ajax 错误。有关此错误的更多信息,请参阅http://datatables.net/tn/7 这是我的看法

      <div>
            <div class="row row-xs align-items-center mg-b-20">
                <div class="col-md-4">
                    <label class="form-label mg-b-0">Division</label>

                </div>
                <div class="col-md-8 mg-t-5 mg-md-t-0">

                    <select id="selection" class="form-control select-group">
                        <option value="0">-- Select User --</option>
                        @foreach (var user in Model.divisions)
                        {
                            <option value="@user.DivisionID">@(user.DivisionName)</option>
                        }
                    </select>
                </div>
            </div>

            <div class="table-responsive">
                <table id="users" class="table table-striped text-md-nowrap">
                    <thead>
                        <tr>
                            <th>User ID</th>
                            <th>Employee ID</th>
                            <th>Username</th>
                            <th>Email</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                </table>
            </div>

        </div>

控制器

    public ActionResult GetUsers(int divisionId)
    {
        int pageSize = 0, skip = 0;
        string orderBy = "", draw = "", search = "";

        Utility.SetDataTableValues(Request, out draw, out orderBy, out search, out pageSize, out skip);

        int recordsTotal = 0;
        List<UserPartial> usersList = new List<UserPartial>();
       usersList = UserBL.GetUsersByDivision(pageSize, skip, out recordsTotal,2, search);
        return Json(new { draw = draw, recordsFiltered = recordsTotal, recordsTotal = recordsTotal, data = usersList }, JsonRequestBehavior.AllowGet);
    }

和脚本:

$(function () {

        $("#selection").on('change', function () {
            var table = $('#users').DataTable();


            table.destroy();
            $("#users").show();

            var divisionId = $("#selection option:selected").val();
            var url = '/AssignHod/GetUsers/';
            table = $('#users').DataTable({
                "processing": true,
                "serverSide": true,
                "filter": true,
                "orderMulti": false,
                "destroy": true,
                "ordering": true,
                "ajax": {
                    "url": '@Url.Action("GetUsers", "AssignHod")',
                    "type": "POST",
                    "datatype": "json"
                },
                "columns":
                    [
                        {
                            "data": "UserID"
                        },
                        {
                            "data": "EmployeeId"
                        },
                        {
                            "data": "Username"
                        },
                        {
                            "data": "Email"
                        },
                        {
                            "render": function (data, type, row, meta) {
                                var html = "";
                                //if (row.canEdit) {
                                if (row.isHOD) {
                                    html += '<a title="Mark as User" href="/AssignHoD/deactivate/' + row.UserID + '" class="btn btn-sm waves-effect waves-light btn-outline-info"><i class="fa fa-toggle-off"></i></a>';
                                }
                                else if (!row.isHOD) {
                                    html += '<a title="Mark as H.O.D" href="/AssignHoD/activate/' + row.UserID + '" class="btn btn-sm waves-effect waves-light btn-outline-info"><i class="fa fa-toggle-on"></i></a>';
                                }
                                return html;
                            }
                        }
                    ]
                ,
                "fnRowCallback": function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {
                    if (aData[0]) {

                    }
                }
            });

        });
  });

【问题讨论】:

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


    【解决方案1】:

    我在ActionResult 之前添加了属性路由,它现在可以工作了。

    [Route("AssignHoD/GetUsers/{Id}")]
    public ActionResult GetUsers(int Id)
    {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-14
      • 1970-01-01
      • 2020-03-11
      • 2014-07-04
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多