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

时间:2015-04-29 10:05:35

标签: asp.net-mvc charts

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

目前我正在创建图表,通常我的x值是固定的(例如Jan,Feb,Mar,Apr等),我的y值是通过查询发送到视图的列表找到的。

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

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

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

当我通过在视图中查询变量值的列表来生成我的图表时,为了使它们能够被所有客户端用于他们自己的数据的更一般的图表视图,我需要我调用的.cshtml文件收到一份清单。

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

谢谢, JK

1 个答案:

答案 0 :(得分:2)

@JonnyKnottsvill你基本上做的是answered here,除了上面建议的例外,创建一个 PartialView ,以便你可以在以后随时重复使用它。

视图内的共享文件夹中的

_ChartParialView.cshtml

@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")" />