第0行请求未知参数'9' - DataTable错误

时间:2017-11-08 05:26:06

标签: c# asp.net-mvc datatables

我刚刚将IEnumerable<model>更改为IEnumerable<ViewModel>,这触发了此错误通知。找到了一些类似的问题here。同时选中http://datatables.net/tn/4以了解有关此内容的更多信息,但无法解决此问题。当我恢复使用Model而不是ViewModel时,它正常工作让我感到困惑。由于Model和ViewModel具有相同的属性。

查看:

    @model IEnumerable<ERPLite.Models.DeliveryScheduleVM>


@section Scripts{
    <script>
        $(function () {

            $('#TableId').DataTable({
                'paging': true,
                'lengthChange': false,
                'searching': true,
                'ordering': true,
                'info': true,
                'autoWidth': false,
                "scrollX": true,
                'order': [[0, 'desc']]//orderby desc
            })
        })
    </script>
}

<div class="box">

    <!-- /.box-header -->
    <div class="box-body">
        <table id="TableId" class="table table-bordered table-striped">
            <thead>
                <tr>
                    <th hidden="hidden">@Html.DisplayNameFor(model => model.ID)</th>

                    <th>@Html.DisplayNameFor(model => model.ProductName)</th>

                    <th>@Html.DisplayNameFor(model => model.Quantity)</th>

                   <th>Actions</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in Model)
                {
                    <tr>
                        <td hidden="hidden">
                            @Html.DisplayFor(modelItem => item.ID)
                        </td>

                        <td>
                            @Html.DisplayFor(modelItem => item.ProductName)
                        </td>

                        <td>
                            @Html.DisplayFor(modelItem => item.Quantity)
                        </td>


                    </tr>
                }

            </tbody>

        </table>
    </div>
    <!-- /.box-body -->
</div>

行动方法:

  public ActionResult Index()
        {
            var deliverySchedules = db.DeliverySchedules.ToList();
            var deliverySchedulesVMList = new List<DeliveryScheduleVM>();
            foreach(var item in deliverySchedules)
            {
                var deliveryScheduleVM = new DeliveryScheduleVM();
                deliveryScheduleVM.ID = item.ID;
                deliveryScheduleVM.ProductID = item.ProductID;
                var product = db.Products.Find(item.ProductID);
                deliveryScheduleVM.ProductName = product.ProductName;
                deliveryScheduleVM.Quantity = item.Quantity;
                deliverySchedulesVMList.Add(deliveryScheduleVM);
            }
            return View(deliverySchedulesVMList);
        }

警告完整说明:

  

DataTables警告:table id = TableId - 请求的未知参数'9'   对于第0行。有关此错误的详细信息,请参阅   http://datatables.net/tn/4

感谢任何帮助。提前谢谢。

1 个答案:

答案 0 :(得分:0)

标题列和正文列的数量不匹配,结果证明是问题。 标记中<td></td>的{​​{1}}中没有<tbody>。 这真是一个愚蠢的错误,我在改变列时忽略了它。 在此处发布,因为我根据警告消息的性质检查数据/列部分。