我刚刚将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
感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
标题列和正文列的数量不匹配,结果证明是问题。
标记中<td></td>
的{{1}}中没有<tbody>
。
这真是一个愚蠢的错误,我在改变列时忽略了它。
在此处发布,因为我根据警告消息的性质检查数据/列部分。