我试图让DataTables (http://datatables.net) 能够与由ASP.Net MVC Controller返回的JsonResult一起使用。 我不断收到“DataTables warning(table id ='example'):从数据源请求未知参数'0',行0”的错误消息,根据文档,这意味着它找不到列。控制器中返回JsonResult的代码如下:
public JsonResult LoadPhoneNumbers()
{
List<PhoneNumber> phoneNumbers = new List<PhoneNumber>();
PhoneNumber num1 = new PhoneNumber { Number = "555 123 4567", Description = "George" };
PhoneNumber num2 = new PhoneNumber { Number = "555 765 4321", Description = "Kevin" };
PhoneNumber num3 = new PhoneNumber { Number = "555 555 4781", Description = "Sam" };
phoneNumbers.Add(num1);
phoneNumbers.Add(num2);
phoneNumbers.Add(num3);
return Json(phoneNumbers, JsonRequestBehavior.AllowGet);
}
PhoneNumber是一个普通的C#类,具有2个属性:Number(号码)和Description(描述)。
检索并加载数据的JavaScript代码如下:
<script>
$(document).ready(function () {
$('#example').dataTable({
"bProcessing": true,
"sAjaxSource": '/Account/LoadPhoneNumbers/',
"sAjaxDataProp": ""
});
});
</script>
而 HTML 看起来像这样:
<table cellpadding="0" cellspacing="0" border="0" class="display" id="example">
<thead>
<tr>
<th>
Number
</th>
<th>
Description
</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
</tfoot>
</table>
我故意将sAjaxDataProp设置为空字符串,以便 DataTables 不会查找 aaData。即使我在控制器中明确设置了 aaData,也是如此:
return Json(new { aaData = phoneNumbers });
我仍然收到这个错误。 有什么建议吗?
谢谢!