首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ChartJS条形图不呈现

ChartJS条形图不呈现
EN

Stack Overflow用户
提问于 2015-07-09 09:05:09
回答 1查看 1.2K关注 0票数 2

我很难显示来自ASP.NET-MVC-5应用程序的条形图。我亲眼目睹了JSON的正确发布(示例在下面应用),根据我已经包含的所有文档,但是输出如下:

HTML:

代码语言:javascript
复制
<div class="jumbotron">
    <h1>Another Chart</h1>
    <canvas id="barChartLoc" width="600" height="400"></canvas>
</div>

这是调用Controller的脚本,它返回一个JSON:

代码语言:javascript
复制
<script type="text/javascript">
function chartFYRevenue() {
        $.ajax({
            url: '@Url.Action("GetLast5FYRevenueAnalysis", "Utility")',
            cache: true
        })
        .done(function (data) {
            var mybarChartLoc = new Chart(document.getElementById("barChartLoc").getContext("2d")).Bar(data);
        })
        .fail(function () {
            alert("Ajax failed to fetch data");
        });
    }

 $(document).ready(function () {
        //auto load on page load
        chartFYRevenue();
});
</script>

这是Controller,它返回一个JSON。我对此进行了测试,这里的情况也很好:

代码语言:javascript
复制
public JsonResult GetLast5FYRevenueAnalysis()
        {
            Models.Chart.BarChartDBContext chartDB = new Models.Chart.BarChartDBContext();

            return Json(chartDB.Test, JsonRequestBehavior.AllowGet);
        }

这是Modeler类,我在其中动态地构建图表数据:

代码语言:javascript
复制
public class ChartDataSets
    {
        public string label { get; set; }
        public string fillColor { get; set; }
        public string highlightFill { get; set; }
        public string highlightStroke { get; set; }
        public string strokeColor { get; set; }
        public string data { get; set; }
    }

    public class BarChartModel
    {
        public string labels { get; set; }
        public List<ChartDataSets> datasets { get; set; }
    }

    public class BarChartDBContext : Models.DBHelper.DBHelperClass
    {
        public BarChartModel GetLast5FInancialYearRevenue
        {
            get { return getLast5FinancialYearRevenue(); }
        }

        public BarChartModel Test
        {
            get { return test(); }
        }

        private BarChartModel test()
        {
            List<ChartDataSets> _datasets = new List<ChartDataSets>();
            BarChartModel _barChartModel = null;

            _datasets.Add(new ChartDataSets()
            {
                data = string.Format("[{0}]", "10,5,25,35"),
                fillColor = "rgba(220,220,220,0.5)",
                highlightFill = "rgba(220,220,220,0.75)",
                highlightStroke = "rgba(220,220,220,1)",
                strokeColor = "rgba(220,220,220,0.8)",
                label = "s1"
            });

            _barChartModel = new BarChartModel();
            _barChartModel.labels = string.Format("[{0}]", "c1,c2,c3,c4");
            _barChartModel.datasets = _datasets;

            return _barChartModel;
        }
}

JSON数据样本:

代码语言:javascript
复制
{
    "labels": "[c1,c2,c3,c4]",
    "datasets": [
        {

            "label": "s1",
            "fillColor": "rgba(220,220,220,0.5)",
            "highlightFill": "rgba(220,220,220,0.75)",
            "highlightStroke": "rgba(220,220,220,1)",
            "strokeColor": "rgba(220,220,220,0.8)",
            "data": "[10,5,25,35]"
        }
    ] 
}

更新:

我修改了我的ChartDataSet和BarChartModel类如下:

代码语言:javascript
复制
public class ChartDataSets
    {
        public string label { get; set; }
        public string fillColor { get; set; }
        public string highlightFill { get; set; }
        public string highlightStroke { get; set; }
        public string strokeColor { get; set; }
        public string[] data { get; set; }
    }

    public class BarChartModel
    {
        public string[] labels { get; set; }
        public List<ChartDataSets> datasets { get; set; }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-09 11:31:16

生成的JSON数据是不正确的。正确的输出应该是

代码语言:javascript
复制
"{
    "labels": ["c1","c2","c3","c4"],
    "datasets": [
        {
            "label":"s1",
            "fillColor":"rgba(220,220,220,0.5)",
            "highlightFill":"rgba(220,220,220,0.75)",
            "highlightStroke":"rgba(220,220,220,1)",
            "strokeColor":"rgba(220,220,220,0.8)",
            "data":[10,5,25,35]
        }
    ]
}"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31312893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档