使用 C# 在控制器中创建数据结构并将其传递到视图中

create a data structure in controller using c# and pass it into view

本文关键字:视图 数据结构 控制器 创建 使用      更新时间:2023-09-26

我是 asp.net MVC4的新手。 我正在使用在我的 asp.net MVC应用程序中执行一些图表功能。

我搜索并找到了一个名为Chart的JS库.js

http://www.chartjs.org/docs/#line-chart-data-structure数据结构如下:

var data = {
    labels: ["January", "February", "March", "April", "May", "June", "July"],
    datasets: [
        {
            label: "My First dataset",
            fillColor: "rgba(220,220,220,0.2)",
            strokeColor: "rgba(220,220,220,1)",
            pointColor: "rgba(220,220,220,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(220,220,220,1)",
            data: [65, 59, 80, 81, 56, 55, 40]
        },
        {
            label: "My Second dataset",
            fillColor: "rgba(151,187,205,0.2)",
            strokeColor: "rgba(151,187,205,1)",
            pointColor: "rgba(151,187,205,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(151,187,205,1)",
            data: [28, 48, 40, 19, 86, 27, 90]
        }
    ]
};

我正在尝试从控制器中的数据库读取数据并将此数据传递到视图中,但始终无法显示图表。

我在控制器中尝试了这个:

int[] intArray = new int[7];
intArray[0] = 34;
intArray[1] = 1;
intArray[2] = 2;
intArray[3] = 23;
intArray[4] = 11;
intArray[5] = 11;
intArray[6] = 11;
ViewBag.proinfo = Json(intArray, JsonRequestBehavior.AllowGet).Data;

然后在视图中:

 {
            label: "My Second dataset",
            fillColor: "rgba(151,187,205,0.2)",
            strokeColor: "rgba(151,187,205,1)",
            pointColor: "rgba(151,187,205,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(151,187,205,1)",
            ViewBag.proinfo
        }

但这对我不起作用。图表无法显示。

如何在C#控制器中创建此数据结构并将其传递给View?

非常感谢!

您可以在ViewBag.proinfo中轻松分配值

ViewBag.proinfo = intArray;

您忘记在视图中定义 JSON 中的数据

{
        label: "My Second dataset",
        fillColor: "rgba(151,187,205,0.2)",
        strokeColor: "rgba(151,187,205,1)",
        pointColor: "rgba(151,187,205,1)",
        pointStrokeColor: "#fff",
        pointHighlightFill: "#fff",
        pointHighlightStroke: "rgba(151,187,205,1)",
        data:ViewBag.proinfo
}

试试这个:
在控制器中:

ViewBag.proinfo = intArray

在视图中

 {
            label: "My Second dataset",
            fillColor: "rgba(151,187,205,0.2)",
            strokeColor: "rgba(151,187,205,1)",
            pointColor: "rgba(151,187,205,1)",
            pointStrokeColor: "#fff",
            pointHighlightFill: "#fff",
            pointHighlightStroke: "rgba(151,187,205,1)",
            data: @Html.Raw(Json.Encode(ViewBag.proinfo));
        }
我假设你正在使用MVC Razor符号