ASP.NET Core MVC AJAX метод вызова метода не работает - PullRequest
0 голосов
/ 14 сентября 2018

Я новичок в AJAX и пытаюсь получить некоторые данные из моего метода контроллера в мой файл .js, чтобы я мог использовать эти данные в своей диаграмме.Каждый раз, когда я запускаю свой проект, теперь я получаю сообщение об ошибке: «Ошибка загрузки данных! Пожалуйста, попробуйте еще раз».Так что это означает, что он входит внутрь функции AJAX, но не успешно.Кроме того, я не знаю, как правильно отладить это, чтобы увидеть, где оно идет не так.

Мой код .js в отдельном файле выглядит следующим образом:

var chartData;

$(document).ready(function () {
$.ajax({
    url: "/Account/GetChartData",
    data: "",
    dataType: "json",
    type: "POST",
    contentType: "application/json; chartset=utf-8",
    success: function (data) {
        chartData = data.d.toString();
        alert("Data is: " + data.d.toString());
    },
    error: function () {
        alert("Error loading data! Please try again.");
    }
}).done(function () {
    //After complete loading data
    drawChart();
});
});

Мой метод контроллера выглядит следующим образом:

public static object[] GetChartData()
    {
        var chartData = new object[2];

        //Manually adding some test data
        chartData[0] = new object[]
        {
            "Day",
            "Detected Asparaguses",
            "String Operations",
            "Successful Sting Operations"
        };
        chartData[1] = new object[]
        {
            "21-09-2018",
            100,
            85,
            80
        };
        return chartData;
    }

1 Ответ

0 голосов
/ 14 сентября 2018

Вы указали dataType: "json", но ваш метод не возвращает json, и вы получите 500 (Internal Server Error). Измените метод, чтобы получить JsonResult

[HttpPost]
public ActionResult GetChartData() // or `JsonResult`
{
    var chartData = new object[2];
    ....
    return Json(chartData);
}

, а затем data в обратном вызове ajax будет содержать массив ваших объектов.

...