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