DataTables не будет запускать функцию рендеринга после вызова AJAX - PullRequest
0 голосов
/ 12 марта 2020

Я использую 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 });
}
...