Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC4中的图表绘制_C#_.net_Asp.net Mvc_Charts - Fatal编程技术网

C# MVC4中的图表绘制

C# MVC4中的图表绘制,c#,.net,asp.net-mvc,charts,C#,.net,Asp.net Mvc,Charts,我已经找了很长一段时间,没有找到我要找的东西 我想在我的控制器中生成一个图表,并通过ViewModel将其提供给我的视图。我发现的两篇最有用的文章是 两者都向您展示了如何创建图表对象,但它们不能帮助我以我希望的方式在视图中显示它。我知道您可以保存图像,只需从视图中打开图像,但如果我希望图表是交互式的,该怎么办?单击饼图上的某个部分时,可能会转到另一个页面,或者使用其他有用的“深入”功能 我糊涂了吗?纯asp.net mvc是否可以实现这种功能,或者我是否将这些奇特的功能与第三方图表库混淆了?

我已经找了很长一段时间,没有找到我要找的东西

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

两者都向您展示了如何创建图表对象,但它们不能帮助我以我希望的方式在视图中显示它。我知道您可以保存图像,只需从视图中打开图像,但如果我希望图表是交互式的,该怎么办?单击饼图上的某个部分时,可能会转到另一个页面,或者使用其他有用的“深入”功能

我糊涂了吗?纯asp.net mvc是否可以实现这种功能,或者我是否将这些奇特的功能与第三方图表库混淆了?如果是前者,如何在视图中呈现我的图表对象
公共图表队列图表{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;

为什么不使用一个可以绘制图表的JavaScript库呢?这些将提供许多功能,并允许您拥有交互式图表

介绍如何使用客户端图像映射在图表控件中启用交互性


Google“MVC3图像映射图”将找到一些资源。

如果您需要交互性,您应该考虑JavaScript库。


是一个基于jQuery的功能强大但易于使用的库,它们还提供了MVC版本。

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

请确保安装以下软件包:Dotnet.HighCharts

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

PM>安装包DotNet.HighCharts

然后在视图中,确保拖动脚本文件(/jquery-1.5.1.min.js和/highcharts.js)。 从而创建一个引用。(在MVC中) 连同

@模型DotNet.Highcharts.Highcharts


@(Model)

我已经考虑过了,但我所在的公司似乎非常安全。它们限制了我们可以使用的软件(和库)。没有经过批准的图表库,但我们可以在MVC框架下使用任何东西,这就是我选择使用.NET实现的原因。