我一直在寻找并且找不到我要找的东西。
我想在我的控制器中生成一个图表,并通过ViewModel将其提供给我的视图。我找到的两篇最有用的文章是
http://www.codecapers.com/post/Build-a-Dashboard-With-Microsoft-Chart-Controls.aspx#tb
两者都向您展示了如何创建图表对象,但它们并没有帮助我以我想要的方式在视图中显示它。我知道您可以保存图像并只是从您的视图中打开图像,但如果我希望图表是交互式的呢?单击饼图上的切片或其他有用的“向下钻取”功能时,可能会转到另一页。
我很困惑吗?纯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;
答案 0 :(得分:7)
答案 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
@(模型)