Asp.net mvc 4 谷歌图表MVC4
我使用Json在我的控制器中返回数据,在我看来,我试图获取Json数据,使用Google图表API,我试图显示它,但什么也得不到。但是如果我单独调用数据actionresult,我就得到了数据 在我的控制器[家]中:Asp.net mvc 4 谷歌图表MVC4,asp.net-mvc-4,google-api,google-visualization,Asp.net Mvc 4,Google Api,Google Visualization,我使用Json在我的控制器中返回数据,在我看来,我试图获取Json数据,使用Google图表API,我试图显示它,但什么也得不到。但是如果我单独调用数据actionresult,我就得到了数据 在我的控制器[家]中: public class HomeController : Controller { public class PieChart { public string Name { get; set; } public decimal va
public class HomeController : Controller
{
public class PieChart
{
public string Name { get; set; }
public decimal valor { get; set; }
}
public IEnumerable<PieChart> CreateDataList()
{
var data = new List<PieChart>()
{
new PieChart() {Name = "Introduction", valor = 20},
new PieChart() {Name = "InBasic 1", valor = 60},
new PieChart() {Name = "PHP", valor = 80}
};
return data;
}
public ActionResult GetData()
{
return Json(CreateDataList(), JsonRequestBehavior.AllowGet);
}
public ActionResult Chart()
{
return View();
}
}
公共类HomeController:控制器
{
公共类图表
{
公共字符串名称{get;set;}
公共十进制值{get;set;}
}
公共IEnumerable CreateDataList()
{
变量数据=新列表()
{
new PieChart(){Name=“Introduction”,valor=20},
新PieChart(){Name=“InBasic 1”,valor=60},
新建PieChart(){Name=“PHP”,valor=80}
};
返回数据;
}
公共操作结果GetData()
{
返回Json(CreateDataList(),JsonRequestBehavior.AllowGet);
}
公共行动结果表()
{
返回视图();
}
}
在我看来[Chart.cshtml]:
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script type="text/javascript">
google.charts.load('current', { 'packages': ['corechart'] });
function drawVisualization() {
$.get('GetData', {}, function(data) {
var tdata = new google.visualization.DataTable();
tdata.addColumn('string', 'Year');
tdata.addColumn('number', 'Hours');
for (var i = 0; i < data.length; i++) {
tdata.addRow([data[i].Name, data[i].valor]);
}
// Create and draw the visualization.
new google.visualization.PieChart(document.getElementById('visualization')).
draw(tdata, { title: "Top Videos", pieHole: 0.4 });
});
};
google.setOnLoadCallback(drawVisualization);
load('current',{'packages':['corechart']});
函数drawVisualization(){
$.get('GetData',{},函数(数据){
var tdata=new google.visualization.DataTable();
tdata.addColumn('string','Year');
tdata.addColumn('number','Hours');
对于(变量i=0;i
但是,我的观点毫无意义
有什么指示吗?您是否正在点击控制器方法?您应该使用
$.get('@Url.Action(“GetData”)')、函数(data){…
来确保正确生成Url。如果您在浏览器控制台中看到任何错误,该怎么办?谢谢@Stephen Muecke,是的,我得到了一个控制台,在替换为$.get('@Url.Action(“GetData”)后,“Uncaught TypeError:google.setOnLoadCallback不是函数”),函数(数据){…,我得到“UncaughtTypeError:无法读取未定义的属性'PieChart'”听起来你的脚本没有正确加载(或者可能顺序错误)。我也犯了一个错误,为GetData()创建了一个.cshtml,当我删除GetData.cshtml时,现在我可以呈现图表了