DataTables всегда отправляет GET-запрос вместо POST - PullRequest
0 голосов
/ 01 марта 2019

Мои DataTables не хотят отправлять POST-запрос к моему ASP.NET MVC Action.Я пытался искать в Интернете, но ничего.Вот код:

            $(document).ready(function () {
            let token = $('input[name="__RequestVerificationToken"]', this).val();

            let table = $('#hit').DataTable({
                "destroy": true                                             
                , "proccessing": true                                       
                , "pagingType": "full_numbers"                              
                , "stateSave": true                                         
                , "serverSide": true                                        
                , "orderCellsTop": true                                     
                , "fixedHeader": true                                       
                , "ajax": {                        
                    "url": @Html.Action("LoadData", "Home"),    
                    "type": "POST"
                    "data": {
                        __RequestVerificationToken: token
                    }
                }
                , "fixedColumns": true                                      
                , "order": [[1, 'asc']]
                ...

и на сервере:

    [HttpPost]
    [ValidateAntiForgeryToken]
    public JsonResult LoadData(DataTableParameters requestParameters)
    {
        return Json(service.GetPagedData(requestParameters));
    }

и сообщение об ошибке:

Метод публичного действия «LoadData» былне найден в контроллере «Project.Web.Controllers.HomeController».

Как можно решить эту проблему, пожалуйста.

1 Ответ

0 голосов
/ 01 марта 2019

Наиболее вероятной причиной является использование @Html.Action() помощника, который пытается вызвать действие контроллера с помощью метода GET:

"url": @Html.Action("LoadData", "Home"),

Вам следует использовать @Url.Action() вместо этого, который генерирует строку URL вместо непосредственного вызова действия контроллера:

"url": '@Url.Action("LoadData", "Home")',
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...