在MVC 4中绘制图表

时间:2012-12-13 17:54:57

标签: c# .net asp.net-mvc charts

我一直在寻找并且找不到我要找的东西。

我想在我的控制器中生成一个图表,并通过ViewModel将其提供给我的视图。我找到的两篇最有用的文章是

http://www.codecapers.com/post/Build-a-Dashboard-With-Microsoft-Chart-Controls.aspx#tb

Charting in ASP.Net MVC 3

两者都向您展示了如何创建图表对象,但它们并没有帮助我以我想要的方式在视图中显示它。我知道您可以保存图像并只是从您的视图中打开图像,但如果我希望图表是交互式的呢?单击饼图上的切片或其他有用的“向下钻取”功能时,可能会转到另一页。

我很困惑吗?纯asp.net mvc是否可以实现这种功能,还是我将第三方图表库的奇特功能混淆了?如果是前者,如何在视图中渲染图表对象public Chart queueChart { get; set; }

就像说明一样,我对使用第三方图表库不感兴趣。

控制器:

//Query from db into model.queue
Chart chart = new Chart();
chart.Width = 600;
chart.Height = 400;
chart.Titles.Add("Title goes here");
chart.ChartAreas.Add(new ChartArea());
Series series = new Series();

series.ChartType = SeriesChartType.Pie;

foreach( Queue i in model.queue )
{
    string x = i.name;
    double y = i.count;

    series.Points.AddXY(x, y);
}

chart.Series.Add(series);

model.queueChart = chart;

4 个答案:

答案 0 :(得分:7)

为什么不使用制作图表的JavaScript库?这些将提供许多功能,并允许您拥有交互式图表。

HighCharts

KendoUI

答案 1 :(得分:2)

如果您想要交互性,您应该考虑使用Javascript库 jqChart是一个功能强大且易于使用的基于jQuery的库,它们也提供了MVC版本。

答案 2 :(得分:1)

This MSDN article描述了如何使用客户端图像映射在Chart控件中启用交互性。

谷歌搜索“MVC3图像地图”将找到一些资源。

答案 3 :(得分:0)

当涉及到使图表互动时,最好的方法是使用高图表。这些非常用户友好,更不用说它们是最具交互性的单元,以及所有向下钻取的功能。相信我与否,但在结束任何事情之前,你想要查看它。 查看链接,其中包含所有说明以及示例。

https://dotnethighcharts.codeplex.com/

确保安装包:Dotnet.HighCharts

这可以通过以下方式完成 TOOLS->库包管理器 - >包管理器控制台..

PM> Install-Package DotNet.HighCharts

然后在视图中确保拖动脚本文件(/jquery-1.5.1.min.js和/highcharts.js)。 从而创建一个参考。 (IN MVC) 与

一起

@model DotNet.Highcharts.Highcharts

@(模型)