2016-06-18 47 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 post请求

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

然后,我尝试画谷歌饼图

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遗漏的类型错误:无法读取未定义 VM372的特性 'arrayToDataTable':231未捕获的错误:不是一个数组 – Shato

+0

你可以发布代码错误的地方,特别是“VM372:231”吗? –

相关问题