为第 0 行请求未知参数“9” - 数据表错误
Posted
技术标签:
【中文标题】为第 0 行请求未知参数“9” - 数据表错误【英文标题】:Requested unknown parameter '9' for row 0 - DataTable error 【发布时间】: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
的要求。
【参考方案1】:
标题列和正文列的数量不匹配,结果证明是问题所在。
标记中的<th>Actions</th>
的<tbody>
中没有<td></td>
。
这真是一个愚蠢的错误,我在更改列时忽略了它。
由于我正在根据警告消息的性质检查数据/列部分,因此在此处发布。
【讨论】:
您的问题代码中没有<th>Actions</th>
!
@StephenMuecke 抱歉,我在复制时不小心删除了。以上是关于为第 0 行请求未知参数“9” - 数据表错误的主要内容,如果未能解决你的问题,请参考以下文章
带有 ajax 的 DataTables 1.10.6,为第 0 行请求未知参数 0
DataTables 警告(表 id = 'table-filter'):从数据源请求未知参数 '0' 用于数据表中的第 0 行错误
从数据源中为 DataTables 中的第 1 行请求未知参数“0”