4

我已经搜索了很长一段时间,但无法找到我要找的东西。

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

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

ASP.Net MVC 3 中的图表

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

我很困惑吗?纯 asp.net mvc 是否可以实现这种功能,或者我是否将花哨的功能与 3rd 方图表库混淆了?如果是前者,我如何public Chart queueChart { get; set; }在我的视图中呈现我的图表对象?

顺便说一句,我对使用 3rd 方图表库不感兴趣。

控制器:

//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

4 回答 4

7

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

高图

剑道UI

于 2012-12-13T18:00:56.000 回答
2

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

于 2012-12-17T06:16:05.550 回答
1

这篇 MSDN 文章介绍了如何使用客户端图像映射在 Chart 控件中启用交互性。

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

于 2012-12-13T19:58:43.610 回答
0

在使图表具有交互性时,最好的方法是使用高位图表。这些都是非常用户友好的,更不用说它们是最具交互性的单元,以及所有向下钻取功能。信不信由你,但你想在得出任何结论之前先检查一下。查看链接,它包含所有说明以及示例。

https://dotnethighcharts.codeplex.com/

确保安装包:Dotnet.HighCharts

这可以通过 TOOLS->Library Package Manager->Package Manager Console 来完成。

PM>Install-Package DotNet.HighCharts

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

@model DotNet.Highcharts.Highcharts

@(模型)

于 2014-05-19T10:06:37.717 回答