jQuery.getJSON()错误:浏览器链接:调用返回值回调失败:类型错误:无法读取属性'文件'为n

jQuery.getJSON() error: Browser Link: Failed to invoke return value callback: TypeError: Cannot read property 'files' of null

本文关键字:错误 读取 属性 文件 失败 浏览器 getJSON 链接 调用 jQuery 回调      更新时间:2023-09-26

我关注@Sam Farajpour Ghamari的答案:如何使用通过代码优先创建的数据库中的数据填充谷歌图表-ASP.Net MVC

这是我的脚本.js

google.charts.load('current', { packages: ['corechart', 'line'] });
google.charts.setOnLoadCallback(drawLineColors);
function drawLineColors() {
    var data = new google.visualization.DataTable();
    data.addColumn('number', '@Model.Days');
    data.addColumn('number', '@Model.Time');
    console.log("!!!");
    //data.addRows([       
    //    [9, 12], [11, 14]
    //]);
    $.getJSON("http://localhost:4411/GetChart", null, function (chartData) {
        $.each(chartData, function (i, item) {
                data.addRows([[item.Days, item.Time]]);
        );

        var options = {
            title: 'You can see on chart in which time you eat',
            hAxis: {
                title: 'Days'
            },
            vAxis: {
                title: 'Time'
            },
            colors: ['#FF6B00', '#0033FF']
        };
        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
    });
}

正如你所看到的,我说"http://localhost:4411/GetChart而不是"@Url.Action('GetChart')",因为第一个不起作用。

在控制器中,我有:

[Route("/GetChart")]
        public IActionResult GetChart()
        {
            return Json(_db.database
                .Select(p =>new {p.Days, p.Time}));
        }

http://localhost:4411/GetChart在浏览器中返回:

[{"Days":1101,"Time":20},{"Days":1102,"Time":20},{"Days":1103,"Time":20}]

注释的硬编码版本"[9,12],[11,14]"运行良好,但当前script.js版本在浏览器控制台(F12)中返回错误:

Uncaught Error: Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3 
!!!
browserLink:64 [00:57:43 GMT+0400 (Russian Daylight Time)] Browser Link: Failed to invoke return value callback:
TypeError: Cannot read property 'files' of null

因此,我得到了没有数据的空图表。我需要帮助来了解我哪里有问题?也许问题是,脚本正在寻找格式为:[[days],[time]]的数据,但它却以格式获取数据:[[data},{time}]如果是这样,我该如何修复它?如果需要任何其他信息,请告诉我。感谢您的时间和回答。

自己解决了。真是愚蠢的错误。我只需要改变一下:

data.addRows([[item.Days, item.Time]]);

到此:

data.addRows([[item.days, item.time]]);

现在我想知道为什么会这样?在我的项目中,我用大写字母命名了天和时间。

"现在我想知道为什么会这样?在我的项目中,我用大写字母命名了Days and Time。"

你在使用asp.net核心吗?如果是,你必须打开默认情况下打开的camelCase调用。