ASP.NET Core MVC AJAX 调用 Action 方法无效

ASP.NET Core MVC AJAX call to Action method not working

我是 AJAX 的新手,我正在尝试从我的控制器方法中获取一些数据到我的 .js 文件中,以便我可以在我的图表中使用这些数据。 每次我 运行 我的项目现在都会收到自定义错误消息:"Error loading data! Please try again." 所以这意味着它正在进入 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;
    }

您已指定 dataType: "json",但您的方法没有 return json,您将得到 500 (Internal Server Error)。把方法改成return一个JsonResult

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

然后 ajax 回调中的 data 将包含您的对象数组。