Запрос Ajax: данные Json не передаются в контроллер - PullRequest
0 голосов
/ 16 мая 2019

Я создаю программу, которая ищет документы в ASP.NET Core. Я передаю данные поиска из текстового поля в контроллер через Ajax-запрос, но контроллер не получает строку.

Я пытался изменить способ определения поля ajaxData, добавить кавычки вокруг слова «поиск» и даже превратить все это в строку, но я не могу передать его в контроллер.

Это код запроса:

ajaxData = {search: $("#textSearchBox").val()}

console.log(ajaxData);

$.ajax({
    type: 'POST',
    url: "@Url.Action("GetDocuments", "DocumentSearchApi")",
    data: ajaxData,
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    error: function (e) {
        //Error Function
    },
    success: function (jsonData) {
        //Success Function
    },
    fail: function (data) {
        //Fail Function
    }
});

И это верхняя часть функции GetDocuments контроллера:

[Route("GetDocuments")]
public async Task<IActionResult> GetDocuments(string search)
{

Нет сообщений об ошибках нигде. Консоль показывает объект, который содержит «search:« Test »», но при достижении точки останова в GetDocuments «search» становится пустым.

Ответы [ 2 ]

1 голос
/ 16 мая 2019

Я думаю, что в этом случае более элегантный способ использовать GET, тогда вам следует изменить код на

var ajaxData = $("#textSearchBox").val();
url: "@Url.Action("GetDocuments", "DocumentSearchApi")"?search=ajaxData 

и удалить данные: ajaxData

Поскольку вы хотите получить что-то изпоиск.Использование сообщения - это когда вы хотите изменить данные из API

0 голосов
/ 16 мая 2019

вам необходимо использовать JSON.stringify () при отправке данных на веб-сервер, данные должны быть строкой, а не объектом

$.ajax({
    type: 'POST',
    url: "@Url.Action("GetDocuments", "DocumentSearchApi")",
    data: JSON.stringify(ajaxData),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    error: function (e) {
        //Error Function
    },
    success: function (jsonData) {
        //Success Function
    },
    fail: function (data) {
        //Fail Function
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...