我正在努力将JSON数据绑定到数据表中。这是我的Javascript代码。
$.ajax({
type: "POST",
data: $('#searchForm').serialize(),
url: "/ReportingItem/Search",
success: function (data) {
$('#searchResults').DataTable({
data: data,
dataSrc: "",
columns: [
{ "data": "ID" },
{ "data": "ItemContent" }
]
});
},
error: function (xhr, ajaxOptions, thrownError) {
if (xhr.status == 404) {
alert(thrownError);
}
}
});
这是我的JSON
"[{"ID":"3","ItemContent":"2nd Test"},{"ID":"4","ItemContent":"3rd Test"},{"ID":"9","ItemContent":"eeeeee"},{"ID":"11","ItemContent":"aaaa"}]"
您可以看到其平面阵列。因此我使用了dataSRC =“”,因此它不在JSON中查找“ data”
这是我收到的错误消息
DataTables警告:表格ID = searchResults-请求的未知 第0行第0列的参数“ ID”。有关此的更多信息 错误,请参阅http://datatables.net/tn/4
任何有关语法的帮助都会有所帮助!
谢谢
克里斯
答案 0 :(得分:0)
只需添加数据行
$('#searchResults').DataTable({
data: JSON.parse(data),
....
});
JSON.parse
答案 1 :(得分:0)
只需要检查ReportingItem / Search中返回的json对象。 如您所述:
"[{"ID":"3","ItemContent":"2nd Test"},{"ID":"4","ItemContent":"3rd Test"},{"ID":"9","ItemContent":"eeeeee"},{"ID":"11","ItemContent":"aaaa"}]"
在大多数情况下,json格式是骆驼符号格式。这意味着对象名称以小写字母开头。因此,您应该在WebApiConfig中进行一些更改,或者如果在设置的配置中不是api,请进行以下更改:ReportingItem / Search 将此添加到方法Register中:
using System.Web.Mvc;
using System.Web.Routing;
public static void Register(HttpConfiguration config)
{
var Settings = config.Formatters.JsonFormatter.SerializerSettings;
Settings.ContractResolver = new CamelCasePropertyNamesContractResolver();
Settings.Formatting = Formatting.Indented;
//... other codes
}
最后而不是
columns: [
{ "data": "ID" },
{ "data": "ItemContent" }
]
使用此:
columns: [
{ "data": "iD" },
{ "data": "itemContent" }
]
希望完成。