簡體   English   中英

圖表未顯示在ASP.NET MVC頁面上

[英]Charts not showing on ASP.NET MVC page

我對asp.net相當陌生,因此我嘗試在我的視圖中添加一個帶有Charts.js的簡單條形圖,但我得到的只是一個空白頁。

控制者

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        List<string> iData = new List<string>();
        List<string> iData2 = new List<string>();

        iData.Add("Sam");
        iData2.Add("555");
        iData.Add("Alex");
        iData2.Add("666");
        iData.Add("Michael");
        iData2.Add("777");

        ViewBag.Value_List = iData2;
        ViewBag.Name_List = iData;

        return View();
    }
}

視圖:

@{
    Layout = null;
}
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Charts</title>
    <script src="~/Scripts/Chart.min.js"></script>
    <script src="~/Scripts/jquery-3.3.1.min.js"></script>
    <script>

        var barChartData =
            {
                labels: [@Html.Raw(ViewBag.Name_List)],
                datasets: [{
                    label: 'ChartTest',
                    backgroundColor: [
                        "#f990a7",
                        "#aad2ed",
                        "#9966FF",
                        "#99e5e5",
                        "#f7bd83",
                    ],
                    borderWidth: 2,
                    data: [@ViewBag.Value_List]
                }]
            };

            window.onload = function () {
                var ctx1 =     document.getElementById("barcanvas").getContext("2d");
                window.myBar = new Chart(ctx1,
                    {
                        type: 'bar',
                        data: barChartData,
                        options:
                            {
                                title:
                                {
                                    display: true,
                                    text: "ChartTest"
                                },
                                responsive: true,
                                maintainAspectRatio: true
                            }
                    });
            }
    </script>
</head>
<body>
    <div style="text-align: center">
        <canvas id="barcanvas"></canvas>
    </div>
</body>
</html> 

我試圖通過一些教程來幫助我,但沒有任何幫助。

有人可以告訴我我在做什么錯嗎?

需要進行兩項更改:

在控制器中將數據序列化為JSON:

using System.Web.Script.Serialization;

var js = new JavaScriptSerializer();
ViewBag.Value_List = js.Serialize( iData2);
ViewBag.Name_List = js.Serialize(iData);

刪除視圖中多余的方括號:

labels: @Html.Raw(ViewBag.Name_List),

data: @Html.Raw(ViewBag.Value_List)

您需要創建“插入式” JavaScript來表示數據。

labels: ["555","666","777"] ,

data: ["Sam","Alex","Michael"] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM