Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 谷歌图表MVC4_Asp.net Mvc 4_Google Api_Google Visualization - Fatal编程技术网

Asp.net mvc 4 谷歌图表MVC4

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

我使用Json在我的控制器中返回数据,在我看来,我试图获取Json数据,使用Google图表API,我试图显示它,但什么也得不到。但是如果我单独调用数据actionresult,我就得到了数据

在我的控制器[家]中:

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时,现在我可以呈现图表了