Asp.net MVC 和 Chart js [英] Asp.net MVC and Chart js

查看:18
本文介绍了Asp.net MVC 和 Chart js的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

I want to show data that comes from databse with chart.js.

In asp.net MVC i have a controller that retrieves data from the database and shows them in view with the following code:

@foreach(var items in Model)
{
    <h6>@items.title</h6>
    <h6>@items.cuntr</h6>
}

How can I show @items.title and @items.cuntr in chart.js? Thanks a lot.

解决方案

Take a look at this link: http://www.c-sharpcorner.com/article/create-free-charts-using-chart-js-in-asp-net-mvc/ It describes all the relevant steps to work with charts in mvc.

Let us say that this is your controller method:

    public ActionResult Index()
    {
      ViewBag.Data = "Value,Value1,Value2,Value3"; //list of strings that you need to show on the chart. as mentioned in the example from c-sharpcorner
      ViewBag.ObjectName = "Test,Test1,Test2,Test3";
    }

You can return the data in a view bag and pass them to the data property oif the chart:

And this is your view:

@{  
    Layout = null;  
}  
<!DOCTYPE html>  
<html>  
<head>  
    <meta name="viewport" content="width=device-width" />  
    <title>Charts</title>  
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.2.2/Chart.bundle.min.js"></script>  
    <script>  
        var barChartData =  
            {  
                labels: [@Html.Raw(ViewBag.ObjectName)], //the names displayed on the x-axis, see images below
                datasets: [{  
                    label: 'ProductWise Sales Count',  
                    backgroundColor: [  
                        "#f990a7",  
                        "#aad2ed",  
                        "#9966FF",  
                        "#99e5e5",  
                        "#f7bd83",  
                    ],  
                    borderWidth: 2,  
                    data: [@ViewBag.Data]  //what you returned back from controller. values displayed on the y-axis, see images below
                }]  
            };  

            window.onload = function () {  
                var ctx1 = document.getElementById("barcanvas").getContext("2d");  
                window.myBar = new Chart(ctx1,  
                    {  
                        type: 'bar',  
                        data: barChartData,  
                        options:  
                            {  
                                title:  
                                {  
                                    display: true,  
                                    text: "ProductWise Sales Count"  
                                },  
                                responsive: true,  
                                maintainAspectRatio: true  
                            }  
                    });  
            }  
    </script>  
</head>  
<body>  
    <div style="text-align: center">  
        <canvas id="barcanvas"></canvas>  
    </div>  
    <div style="text-align: center">  
        Disclaimer:- This data is for demo it is   
        not real data it wont relate to any company  
    </div>  
</body>  
</html>  

这篇关于Asp.net MVC 和 Chart js的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆