Я пытаюсь заставить DataTables (http://datatables.net) работать с JsonResult, возвращаемым контроллером ASP.Net MVC. Я продолжаю получать предупреждение "DataTables (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 isпросто простой класс 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 });
Я все еще получаю ошибку.Любой совет, пожалуйста?
Спасибо!