0

У меня есть приложение asp.net mvc4, в котором я должен добавить диаграмму для отображения данных, но ничего не отображается в браузере.Как создать динамическую диаграмму в MVC4?

Вот код из контроллера, который работает хорошо:

DAL dal = new DAL(); 
    public ActionResult Graph2(int Day) 
    { 
     List<Greenhouse> greenhouse = dal.FindTemperatureByDay(Day); 
     return View("DynamicGraph", greenhouse); 
    } 

Вот моя модель класса Теплица:

public class Greenhouse 
{ 

    [Required] 
    public int Id { get; set; } 
    public DateTime DateTime { get; set; } 
    public double Temperature { get; set; } 
    public double Humidity { get; set; } 
} 

А вот мнение, что я пытался поставить диаграмму.

@model List<Plotting.Models.Greenhouse> 
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
<script type="text/javascript"> 

    google.load("visualization", "1", { packages: ["corechart"] }); 
    google.setOnLoadCallback(drawChart); 

    function drawChart() { 
     var data = new google.visualization.DataTable(); 
     data.addColumn('number','Hour'); 
     data.addColumn('number', 'Temperature'); 
     for (i = 0; i < greenhouse.length; i++) { 
      data.addRow(greenhouse[i].DateTime.Hour,greenhouse[i].Temperature); 
     } 

     var options = { 
      'title': 'Daily Report for Humidity', 
      'width': 600, 
      'height': 500 
     }; 
     var chart = new google.visualization.ColumnChart(document.getElementById('chartdiv')); 
     chart.draw(data, options); 
    } 
</script> 
+0

Что такое «годы»? и что такое «парниковая»? откуда они? Вы, конечно, не указали все важные коды из View. –

+0

Извините, это должно быть теплица, но все равно ничего не появляется. Я отредактировал код – Maria

+0

greenhouse отправлен как список @model. Maria

ответ

1

Вы должны получить ошибку Uncaught Error: If argument is given to addRow, it must be an array, or null.

Ваша строка

data.addRow(greenhouse[i].DateTime.Hour,greenhouse[i].Temperature);

следует перефразировать, чтобы

data.addRow([greenhouse[i].DateTime.Hour,greenhouse[i].Temperature]); (кнопки []).

Предполагая, что вы правильно конвертируете свои данные с сервера в javascript.

link to jsfiddle

+0

Thank вы так много! – Maria

Смежные вопросы