【发布时间】:2018-04-20 16:38:27
【问题描述】:
我刚刚将带有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 警告:表 id=TableId - 请求的未知参数“9” 对于第 0 行。有关此错误的更多信息,请参阅 http://datatables.net/tn/4
感谢任何帮助。提前致谢。
【问题讨论】:
-
该参数似乎是一个整数,可能您的表格列数超过了 HTML 标记中指定的数量,或者表格单元格的数量不满足
DataTable的要求。
标签: c# asp.net-mvc datatables