Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.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# ASP.NETMVC3charting_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Charts - Fatal编程技术网

C# ASP.NETMVC3charting

C# ASP.NETMVC3charting,c#,asp.net,asp.net-mvc,asp.net-mvc-3,charts,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Charts,我不熟悉这种制图的方法,而且我的工作效率很低,所以我认为应该有更好的方法 目前,我有一个控制器,它创建一个模型,从数据库中提取所有数据,并进行大量解析等,然后在一个视图中显示所有数据,其中数据在多个表中布局 视图中还有一系列调用控制器中的操作的img。该操作将生成模型的一个新实例,并使用该数据创建图表图像,然后返回到视图 既然我在视图中已经有了所需的数据,我如何完全从那里创建图表?或者更好,在模型中创建它并在视图中引用它?这应该是可能的,但我的谷歌搜索并没有取得成果 这里有一些代码 看法 控制器

我不熟悉这种制图的方法,而且我的工作效率很低,所以我认为应该有更好的方法

目前,我有一个控制器,它创建一个模型,从数据库中提取所有数据,并进行大量解析等,然后在一个视图中显示所有数据,其中数据在多个表中布局

视图中还有一系列调用控制器中的操作的img。该操作将生成模型的一个新实例,并使用该数据创建图表图像,然后返回到视图

既然我在视图中已经有了所需的数据,我如何完全从那里创建图表?或者更好,在模型中创建它并在视图中引用它?这应该是可能的,但我的谷歌搜索并没有取得成果

这里有一些代码

看法

控制器

 public FileResult Chart(string year, int projectID)
 {
ProjectEnrollment projectEnrollment = new ProjectTargetVsActualModel(year).ProjectEnrollments.SingleOrDefault(p => p.ProjectID == projectID);

if (projectEnrollment != null)
{
    Dictionary<string, IEnumerable<double>> data = new Dictionary<string, IEnumerable<double>>();
    data.Add("P", projectEnrollment.P.Select<int, double>(i => i).ToList());
    data.Add("Planned P", projectEnrollment.PlannedP.Select<int, double>(i => i).ToList());
    data.Add("S", projectEnrollment.S.Select<int, double>(i => i).ToList());
    data.Add("Planned S", projectEnrollment.PlannedS.Select<int, double>(i => i).ToList());
    ChartHelper ch = new ChartHelper();
    return ch.CreateChart(SeriesChartType.Line, 800, 300, null, projectEnrollment.Headers, data);
}

return null;
}
我知道这些代码片段缺少很多细节。但我希望这足以让我了解我目前的工作方式


正如您所见,当前的设置效率很低。有没有一种方法可以只使用一个模型实例?任何建议都将不胜感激。谢谢。

图表对象可以使用SaveImage保存到MemoryStream中。MemoryStream可以用ToArray作为字节[]输出。我做了所有这些,并将字节[]存储在模型中

在视图中,字节[]可以显示为图像,如下所示

<% var base64 = Convert.ToBase64String(projectEnrollment.Chart);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64); %>
<img src="<%= imgSrc %>" alt="Chart"/>
<% var base64 = Convert.ToBase64String(projectEnrollment.Chart);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64); %>
<img src="<%= imgSrc %>" alt="Chart"/>