2016-06-18 6 views
2

У меня есть метод на мой контроллер, который возвращают JsonПочему Google Chart не работает с ASP MVC-приложением?

 [HttpPost] 
     public JsonResult CompanyChart() 
     { 

      var data = db.adusers; 
      var selectUsers = from s in data where (s.Company != null) select s; 
      int fenixPlus = (from fP in data where (fP.Company == "ООО \"Феникс+\"") select fP).Count(); 
      int fenixPresent = (from fP in data where (fP.Company == "ООО \"Феникс-Презент\"") select fP).Count(); 

      var dataObj = new object[] 
      { 
       new object[] {"Компания","Количество"}, 
       new object[] { "ООО \"Феникс+\"", fenixPlus}, 
       new object[] { "ООО \"Феникс-Презент\"", fenixPresent} 
      }; 

      return Json(dataObj, JsonRequestBehavior.AllowGet); 
     } 

Json выглядит следующим образом [["Компания","Количество"],["ООО \"Феникс+\"",53],["ООО \"Феникс-Презент\"",42]]

На мой взгляд, стороны у меня есть запрос на JQuery пост

$.ajax({ 
       url: '@Url.Action("CompanyChart", "Users")', 
       type: 'post', 
       dataType: "json", 
       success: function (data) { 
        drawChart(data); 
       } 
      }); 

Тогда, я стараюсь draw google круговая диаграмма

google.charts.load("current", { packages: ["corechart"] }); 
      google.charts.setOnLoadCallback(drawChart); 
      function drawChart(data) { 

       var array = JSON.parse(data); 
       var dataV = new google.visualization.DataTable(array); 
       var options = { 
        title: 'My Daily Activities', 
        pieHole: 0.4, 
       }; 

       var chart = new google.visualization.PieChart(document.getElementById('donutchart')); 
       chart.draw(dataV, options); 
      }; 

Не работает, ошибка в консоли Uncaught SyntaxError: Unexpected token К in JSON at position 0

Я не понимаю, почему мой код не работает?

ответ

1

JsonResult возвращает вызывающему абоненту JSON object не строку содержимого JSON, поэтому вам не нужно звонить JSON.parse.

Просто измените

var array = JSON.parse(data); 

в

var array = data; 
+0

Не работает Теперь консоль Индекс записи: 1711 Uncaught TypeError: Не удается прочитать свойство 'arrayToDataTable' неопределенной VM372: 231 неперехваченным Ошибка: Не массив – Shato

+0

Можете ли вы опубликовать код, где это ошибка, в частности «VM372: 231»? –