Ajax Данные запроса GET не доходят для просмотра с контроллера в ASP. NET Core MVC в случае успеха - PullRequest
0 голосов
/ 18 февраля 2020

В моем приложении. NET Core (2.2) MVC, я делаю get запрос к моему контроллеру с пользовательским вводом, используя ajax.

Вот код:

 $.ajax({
            type: 'GET',
            url: "/BuildSheetsArea/TesterParameters/GetMassEditing",
            data: { 'ChangeTypeId': ChangeTypeId, 'param': param, 'ParameterValue': ParameterValue },
            dataType: 'json',
            success: function (data) {
                alert('success');
                console.log(data);

            },
            error: function (emp) {
                alert('error');
            }
        });

Image 01 from view page

Я получил удар по своему контроллеру, и мой контроллер возвращает результат.

Вот мой код контроллера :

[HttpGet]
public System.Web.Mvc.JsonResult GetMassEditing(string ChangeTypeId, string param, string ParameterValue = "")
{
    List<TesterParameterMassEditingViewModel> finalList = new List<TesterParameterMassEditingViewModel>();

    // Code to perform necessary action

    return new System.Web.Mvc.JsonResult { Data = finalList, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };
}

Вот скриншот, где контроллер успешно возвращает результат

Controller image

НО при успехе Я ничего не получаю на мой взгляд. Как вы видите из моего ajax звонка при успешном выполнении, я пытаюсь записать данные с контроллера на консоль, но после возврата данных контроллером ничего не происходит. Он никогда не возвращается к моей ajax функции успеха.

Я что-то упустил? Пожалуйста, помогите.

Я использую. NET Core 2.2 и Entity Framework Core 2.2.6

РЕДАКТИРОВАТЬ: Добавление скриншота результатов вкладки сети здесь

network status

EDIT2: После того, как @ Рена предложила мне изменить свой код. но теперь у меня возникла новая проблема. От моего контроллера, когда я пытаюсь выполнить запрос к БД, любой ретранслятор пытается передать объект, мой запрос переходит в состояние ожидания. Объяснение ниже. вот мой запрос AXAJ:

$.ajax({
            type: 'POST',
            url: "/BuildSheetsArea/TesterParameters/GetMassEditing",
            data: {'ChangeTypeId': ChangeTypeId, 'param': param, 'ParameterValue': ParameterValue },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (data) {
                debugger;
                alert('success');
                console.log(data);
            },
            error: function (emp) {
                alert('error');
            },
        });
    });

А вот код моего контроллера:

        [HttpPost]
    public async Task<JsonResult> GetMassEditing(string ChangeTypeId, string param, string ParameterValue)
    {
        List<TesterParameter> deviceList = await _context.TesterParameters.ToListAsync();
        string val = "See from console";
        return Json(deviceList);
    }

В списке моего устройства 120 объектов. Этот случай в моей вкладке сети в браузере я получаю это. Мой первый запрос находится в состоянии ожидания, и я ничего не получаю в моем ajax методе успеха.

enter image description here

Но если я не делаю, любой запрос БД и просто вернуть строку, она отлично работает

        [HttpPost]
    public async Task<JsonResult> GetMassEditing(string ChangeTypeId, string param, string ParameterValue)
    {
        string val = "See from console";
        return Json(val);
    }

enter image description here

В 3-м случае, если я делаю только запрос БД, но возвращаю простую строку, мой Вкладка сети показывает запрос в ожидании и в ajax метод успеха я ничего не получаю.

Пожалуйста, помогите.

1 Ответ

0 голосов
/ 19 февраля 2020

Если вы уверены, что используете asp. net core 2.2, вам нужно использовать Microsoft.AspNetCore.Mvc.JsonResult вместо System.Web.Mvc.JsonResult.

Изменить, как показано ниже:

[HttpGet]
public Microsoft.AspNetCore.Mvc.JsonResult GetMassEditing(string ChangeTypeId, string param, string ParameterValue = "")
{
    List<TesterParameterMassEditingViewModel> finalList = new List<TesterParameterMassEditingViewModel>();

    // Code to perform necessary action

    return new JsonResult(finalList);
}

Результат: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...