【发布时间】:2021-01-08 15:41:09
【问题描述】:
我正在尝试绘制图表,但收到此错误“未捕获的错误:arrayToDataTable 的数据不是数组。”尝试了很多东西,但没有任何效果。
这是我的控制器
[HttpPost]
public ActionResult GetChartData()
{
List<SubmittedSurveys> sResult = new List<SubmittedSurveys>();
using (SurveyDBContext dc=new SurveyDBContext())
{
sResult = dc.SubmittedSurveys.ToList();
}
var chartData = new object[sResult.Count + 1];
chartData[0] = new object[]
{
"SurveyID","StartedDateTime"
};
int j = 0;
foreach (var i in sResult)
{
j++;
chartData[j] = new object[] { i.SurveyID, i.StartedDateTime.ToString() };
}
return Json(chartData, JsonRequestBehavior.AllowGet);
}
这是我对这个控制器的看法
<html>
<head>
<title>
Column Charts for Submitted Surveys
</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
</script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script>
var chartData;
google.load("visualization", "1", { packages: ["corechart"] });
$(document).ready(function () {
$.ajax({
url: '@Url.Action("GetChartData", "Reports")',
type: "POST",
dataType: 'json',
contentType:"application/json",
success: function (data) {
chartData = data.d;
},
error: function () {
alert("Error loading data!");
}
}).done(function () {
//after complete loading data
drawChart();
});
});
function drawChart() {
var data = google.visualization.arrayToDataTable(chartData);
var Options = {
title: "Survey",
pointSize: 5
};
var columnChart = new
google.visualization.columnChart(document.getElementById('DailyStatisticss'));
columnChart.draw(data, Options);
}
</script>
</head>
<body>
<div id="DailyStatisticss"></div>
</body>
</html>
请帮助我在哪里做错了。我试图像 Json.Parse(chartData) 那样解析 ChartData。但没有用。不知道我哪里做错了
【问题讨论】:
-
把它放在数据类型之后和之前成功。查看控制台窗口中是否有任何内容可以引导您找到原因。 error: function (, err) { console.log(, err) },也把这个放到success里——console.log(response); var jsonresult = 响应
-
数据很可能是一个对象 (
{}) 而不是一个数组 ([]) -
请告诉我如何添加为数组。我尝试了错误:函数(xhr,状态,错误){ var errorMessage = xhr.status + ':' + xhr.statusText alert('Error - ' + errorMessage); } 但得到相同的错误和响应是不确定的。
-
数据未正确返回。我正在查看问题所在。这是控制器动作中的东西。 json。
-
如果我需要在控制器中更改某些内容,请告诉我确切的信息
标签: javascript model-view-controller google-visualization