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

问题描述:

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

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

但是我创建的图表对象会创建一个图像,这是图像显示在页面上唯一的东西,而我的布局显然会因此而丢失。

文中提到在网页中嵌入由一个单独的视图调用图表作为一个喜欢:

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

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

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

感谢, JK

+0

创建一个返回图表局部视图的ChildOnlyAction,然后使用@Html.Action()将其呈现在视图中。 –

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