MVC 图表 - 将数据从一个视图传递到另一个 cshtml

MVC Charts - Passing data from one view to another cshtml

在现有的 MVC 应用程序中工作,我正在创建各种图表来显示客户端数据。我对 ASP.NET 中的图表完全陌生。我主要使用 http://www.asp.net/web-pages/overview/data/7-displaying-data-in-a-chart 作为创建图表的资源。

目前我创建的图表很好,通常我的 x 值是固定的(例如一月、二月、三月、四月等),我的 y 值是通过查询发送到视图的列表找到的。

我正在创建的图表对象创建了一个图像,这是页面上唯一显示的内容,结果显然我的布局丢失了。

文章提到通过从单独的视图调用图表来嵌入网页,例如:

  <body>
    <p><img src="ChartArrayBasic.cshtml" /> </p>
  </body>

由于我通过在视图中查询变量值的列表来生成我的图表,为了使它们更通用的图表视图可供所有客户用于他们自己的数据,我需要 .cshtml 文件我打电话来要一份清单。

是否可以: 1. 从动作方法中调用视图。 2. 视图显示一个常规页面,其中嵌入了另一个视图。 3.嵌入视图需要从初始视图接收一个List对象。

谢谢, JK

@JonnyKnottsvill 你基本上做了 answered here 的事情,除了上面建议的例外,创建一个 PartialView 以便你以后可以根据需要重用它。

_ChartParialView.cshtmlShared 文件夹中 Views:

@model IEnumerable<string>

@{
    var myChart = new Chart(width: 600, height: 400)
        .AddTitle("Chart Title")
        .AddSeries(
            name: "Employee",
            xValue: new[] { "Peter", "Andrew", "Julie", "Mary", "Dave" },
            yValues: Model)
        .Write();
}

控制器:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult DrawChart()
    {
        var model = new[] { "2", "6", "4", "5", "3" };

        return PartialView("_ChartPartialView", model);
    }
}

要将图表呈现为图像的主页(索引)视图:

@{
    ViewBag.Title = "Chart";
}

<h2>Chart</h2>

<img src="@Url.Action("DrawChart")" />