2016-07-27 21 views
2

のプロパティを読み取ることができません「ファイル」私は@Sam Farajpour Ghamariの答えを次てるから:How to populate google charts using data from database created via code first - ASP.Net MVCjQuery.getJSON()エラー:ブラウザのリンク:戻り値コールバックを呼び出すために失敗しました:例外TypeError:ヌル

こと最初のものは動作しませんでしたので、私が代わりに「@のUrl.Action( 『GetChart』)」の「http://localhost:4411/GetChart」を置く見ることができるように私の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); 
    }); 
} 

です。

コントローラに私が持っている:ブラウザで

[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 

結果として、データなしの空の図があります。私はどこに問題があるのか​​理解するのに助けが必要ですか?おそらく問題は、スクリプトが[[日]、[時間]]の形式でデータを探しているのに対し、代わりに[{データ}、{時間}]の形式で取得するということです。修理する? 追加情報が必要な場合はお知らせください。あなたの時間と答えに感謝します。

+0

コードでこのバージョンのjqueryが必要です。https://cdnjs.com/libraries/jquery/1.9.1。 – applecrusher

+0

NuGetパッケージマネージャーでバージョン1.9.1をダウンロードしましたが、まだ問題があります。 @applecrusher、あなたはそれを修正する方法を知っていますか? – Anela

+0

jqueryコードを挿入するhtmlファイルやスクリプトをインポートする方法はありますか? – applecrusher

答えて

0

自分で解決しました。本当に愚かな間違い。今、私はそれがそうである理由を理解したいと思います

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

:これまで

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

:私はちょうどこれを変更しなければなりませんでしたか?私のプロジェクトでは、大文字を使ってDaysとTimeという名前を付けました。

0

"私はなぜそれがそうであるのか理解したいと思いますか?私のプロジェクトでは、大文字を使って日と時間を指定しました。

asp.netコアを使用していますか?はいの場合は、デフォルトではキャメルケースの操縦をオンにする必要があります。

関連する問題