ASP.NET Core MVC AJAX调用Action方法无法正常工作

问题描述 投票:0回答:1

我是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;
    }
asp.net-core-mvc asp.net-ajax
1个回答
1
投票

你指定了dataType: "json"但你的方法没有返回json,你会得到一个500 (Internal Server Error)。更改方法以返回JsonResult

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

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

© www.soinside.com 2019 - 2024. All rights reserved.