PW7*_*763 11 jquery json datatables asp.net-mvc-3
我正在尝试使用DataTables(http://datatables.net)来处理ASP.Net MVC控制器返回的JsonResult.我一直收到"DataTables警告(表id ='示例'):从第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);
}
Run Code Online (Sandbox Code Playgroud)
PhoneNumber只是一个普通的C#类,有2个属性,Number和Description.
检索并加载数据的javascript如下所示:
<script>
$(document).ready(function () {
$('#example').dataTable({
"bProcessing": true,
"sAjaxSource": '/Account/LoadPhoneNumbers/',
"sAjaxDataProp": ""
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
而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>
Run Code Online (Sandbox Code Playgroud)
我故意将sAjaxDataProp设置为空字符串,以便DataTables不查找aaData.即使我在控制器中显式设置了aaData:
return Json(new { aaData = phoneNumbers });
Run Code Online (Sandbox Code Playgroud)
我仍然得到错误.有什么建议吗?
谢谢!
Dar*_*rov 17
以下对我很有用:
$(function () {
$('#example').dataTable({
bProcessing: true,
sAjaxSource: '@Url.Action("LoadPhoneNumbers", "Home")'
});
});
Run Code Online (Sandbox Code Playgroud)
我已经删除了该sAjaxDataProp属性.
使用此数据源:
public ActionResult LoadPhoneNumbers()
{
return Json(new
{
aaData = new[]
{
new [] { "Trident", "Internet Explorer 4.0", "Win 95+", "4", "X" },
new [] { "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", "1.8", "A" },
new [] { "Webkit", "iPod Touch / iPhone", "iPod", "420.1", "A" }
}
}, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
而对于您的电话示例:
public ActionResult LoadPhoneNumbers()
{
var phoneNumbers = new List<PhoneNumber>(new[]
{
new PhoneNumber { Number = "555 123 4567", Description = "George" },
new PhoneNumber { Number = "555 765 4321", Description = "Kevin" },
new PhoneNumber { Number = "555 555 4781", Description = "Sam" }
});
return Json(new
{
aaData = phoneNumbers.Select(x => new[] { x.Number, x.Description })
}, JsonRequestBehavior.AllowGet);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35573 次 |
| 最近记录: |