ASP.NET MVC中的Google API图表

我正在使用谷歌apis创建一个简单的图表

[AllowAnonymous] public JsonResult PieChart() { return Json("[[\"State\",\"Total\"],[\"GA\",50], [\"AL\",30]]",JsonRequestBehavior.AllowGet); } 

我通过我的View中的ajax调用此方法。 以下是我的观点

 @{ ViewBag.Title = "Visuals"; Layout = "~/Views/Shared/_Layout.cshtml"; } 

Visuals

google.load("visualization", "1", {packages:["corechart"]}); google.setOnLoadCallback(drawChart); function drawChart() { var jsonData = $.ajax({ type: 'GET', url: '@Url.Action("PieChart","Home")', dataType: "json", async: false }).responseText; var data = google.visualization.arrayToDataTable(jsonData, false); var options = { title: 'My Daily Activities', is3D: true, }; var chart = new google.visualization.PieChart($('#piechart_3d')[0]); chart.draw(data, options); }

但是我在这行上收到一个javascript错误,说不是数组

 var data = google.visualization.arrayToDataTable(jsonData, false); 

我也试过JSON.Parse但没有成功。 谢谢你的帮助。

我会尝试设置contentType并在成功处理程序中处理结果,如下所示:

  $.ajax({ type: 'GET', url: '@Url.Action("PieChart","Home")', dataType: "json", contentType: 'application/json; charset=utf-8', async: false, success: function(result) { jsonData = result; } }); 

你回来的数据看起来不错,因为我试过这个:

http://jsfiddle.net/Qquse/547/

不幸的是,hutchonoid的回答对我来说并不完全有效。 我不得不将数组代码更改为:

 object[][] arr = new object[][] { new object[] { "Trickle", "Count" }, new object[] { "Ga", 50 }, new object[] { "Ga", 50 } };