Как передать данные из контроллера ASP.NET MVC в JS Google Chart

Я получаю данные в виде DataTable (могу получать и иначе, например как список моделей, но пока так), в одном столбце дата в DateTime, в другом - данные в double. И есть необходимость нарисовать график по этим данным, предварительно выбрал Google Chart, пример необходимого мне графика:

<script type="text/javascript">
    google.charts.load('current', { 'packages': ['line'] });
    google.charts.setOnLoadCallback(drawChart);

    function drawChart() {

        var data = new google.visualization.DataTable();
        data.addColumn('date', 'Time');
        data.addColumn('number', 'Guardians of the Galaxy');
        data.addColumn('number', 'The Avengers');
        data.addColumn('number', 'Transformers: Age of Extinction');
        data.addRows([
            [new Date(2019, 10, 8), 37.8, 80.8, 41.8],
            [new Date(2019, 10, 9), 30.9, 69.5, 32.4],
            [new Date(2019, 10, 10), 25.4, 57, 25.7],
            [new Date(2019, 10, 11), 11.7, 18.8, 10.5],
            [new Date(2019, 10, 12), 11.9, 17.6, 10.4],
            [new Date(2019, 10, 13), 8.8, 13.6, 7.7],
            [new Date(2019, 10, 14), 7.6, 12.3, 9.6],
            [new Date(2019, 10, 15), 12.3, 29.2, 10.6],
            [new Date(2019, 10, 16), 16.9, 42.9, 14.8],
            [new Date(2019, 10, 17), 12.8, 30.9, 11.6],
            [new Date(2019, 10, 18), 5.3, 7.9, 4.7],
            [new Date(2019, 10, 19), 6.6, 8.4, 5.2],
            [new Date(2019, 10, 20), 4.8, 6.3, 3.6],
            [new Date(2019, 10, 21), 4.2, 6.2, 3.4]
        ]);
        //при формате new Date(2019, 10, 8) - месяц будет 11, т.к. осчёт от 0.
        var options = {
            chart: {
                title: 'Расход материала по пультам',
                subtitle: 'результат в тоннах (т.)'
            },
            width: 800,
            height: 600,
            hAxis: {
                format: 'dd.MM.yy',
                //gridlines: { count: 15 }
            }
        };

        var chart = new google.charts.Line(document.getElementById('linechart_material'));

        chart.draw(data, google.charts.Line.convertOptions(options));
    }
</script>

Каким образом лучше передавать в него данные? Можно ли напрямую вставлять DateTime в Date и Double в Number?


Ответы (0 шт):