Я использую AJAX, чтобы получить данные в таблицу Datatables. Это то, что я делал раньше, и это работало нормально, но на этот раз я столкнулся с проблемой.
Когда я запускаю функцию InitializeDatatables
JS, она успешно генерирует таблицу и запускает AJAX, который достигает действия контроллера GetDataForTable
. Однако больше ничего не происходит, когда возвращается действие контроллера. Что должно произойти, так это то, что функция в разделе "render"
должна работать, но это не так. Также не выдается никакой ошибки.
Насколько я могу судить, эта установка очень похожа на ту, которая была у меня в другом проекте, но я не могу найти, где я делаю ошибку. Одно из отличий состоит в том, что предыдущий проект был на ASP. NET Core 3.0, а этот на 2.2.
HTML настройка таблицы:
<table id="myTable">
<thead>
<tr>
<th>
Important Stuff
</th>
</tr>
</thead>
//Datatables automatically generates the rest of HTML needed
</table>
JS функция, которая работает при загрузке страницы:
function InitializeDatatables() {
$('#myTable').DataTable({
"lengthChange": false,
"ajax": {
"url": "/Home/GetDataForTable", //controller action runs and returns
"type": "GET",
error: function (error) {
var test = error; //no error is given
}
},
"columns": [
{ "data": null } //"data: null" to access all JSON data in "render" function(data).
],
"columnDefs": [
{
"targets": 0,
"render": function (data) { //function never runs
var test = data;
return '<span>test</span>';
}
},
{"className": "testClass", "targets": 0} //class name is successfully added
]
});
}
Действие контроллера:
[HttpGet]
public JsonResult GetDataForTable()
{
MyModel model = new MyModel();
model.ImportantStuff = _myProcessingService.GetDataFromDB();
return Json(new { data = model });
}