2016-07-27 30 views
2

的特性「文件,」我下面@Sam Farajpour加馬裏的從答案:How to populate google charts using data from database created via code first - ASP.Net MVCjQuery.getJSON()錯誤:瀏覽器鏈接:未能調用的返回值的回調:類型錯誤:無法讀取空

那是我的script.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}]獲取數據。如果是這樣,我怎麼能修理它? 讓我知道是否需要任何其他信息。感謝您的時間和答案。

+0

所以你需要在你的代碼中使用這個版本的jquery:https://cdnjs.com/libraries/jquery/1.9.1。 – applecrusher

+0

我已經在NuGet包管理器下載了1.9.1版本,但問題仍然存在。 @applecrusher,你知道如何解決它嗎? – Anela

+0

是否有一個HTML文件來放置jQuery代碼或導入腳本的方式? – applecrusher

回答

0

解決它自己。真是愚蠢的錯誤。我不得不改變這一點:

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

這樣:

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

現在我想明白爲什麼會這樣呢?在我的項目中,我使用大寫字母命名了Days and Time。

0

「現在我想明白爲什麼會這樣?在我的項目中,我使用大寫字母命名了Days and Time。」

你使用的是asp.net核心嗎?如果是的話,你必須打開camelCase這個接口默認開啓。

相關問題