Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.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#_C#_Asp.net_Charts_Stacked Chart - Fatal编程技术网

控制器类中的堆叠柱形图C#

控制器类中的堆叠柱形图C#,c#,asp.net,charts,stacked-chart,C#,Asp.net,Charts,Stacked Chart,所以,我的问题是。我必须将堆叠柱形图插入web应用程序。它不会被交互,只需要偶尔显示和刷新 最基本的是,这是我在控制器类中用来生成简单条形图的代码 public ActionResult CharterHelp(int _completed, int _remaining) { var workChart = new System.Web.Helpers.Chart(300, 500).AddTitle("Work Items"); workChart .AddSeries(ch

所以,我的问题是。我必须将堆叠柱形图插入web应用程序。它不会被交互,只需要偶尔显示和刷新

最基本的是,这是我在控制器类中用来生成简单条形图的代码

public ActionResult CharterHelp(int _completed, int _remaining)
{
    var workChart = new System.Web.Helpers.Chart(300, 500).AddTitle("Work Items");
    workChart .AddSeries(chartType: "column",
               xValue: new[] { "Completed", "Remaining" },
               yValues: new[] { _completed, _remaining })
               .Write("png");

    return null;
}
先前的代码正在运行。但是,我需要将它表示为一个堆叠的列,并且。。。他们发现,如果没有专有的绘图软件,很难得到一个清晰的答案或教程,甚至是一个基本的答案或教程

我找到的所有直接的C#和ASP.net的代码都在一定程度上帮助了我,但我还没有找到一个能给我与“.write(png)”相当的代码

我知道我需要使用SaveImage方法,但这是在服务器上运行的,在服务器上我不能只将文件存储在静态位置。我需要动态创建它

这是我对修改后的代码的了解,如果能在这方面得到任何帮助,我将不胜感激

public ActionResult CharterHelp(int _completed, int _remaining)
{
    System.Web.UI.DataVisualization.Charting.Chart workChart = new System.Web.UI.DataVisualization.Charting.Chart();

    var seriesCompleted = new System.Web.UI.DataVisualization.Charting.Series
    {
            Name = "Completed",
            Color = System.Drawing.Color.Green,
            IsVisibleInLegend = false,
            IsXValueIndexed = true,
            ChartType = SeriesChartType.StackedColumn
    };
    var seriesRemaining = new System.Web.UI.DataVisualization.Charting.Series
    {
            Name = "Remaining",
            Color = System.Drawing.Color.Red,
            IsVisibleInLegend = false,
            IsXValueIndexed = true,
            ChartType = SeriesChartType.StackedColumn
    };

    workChart.Series.Add(seriesCompleted);
    workChart.Series.Add(seriesRemaining);

    seriesRemaining.Points.AddY(_completed);
    seriesCompleted.Points.AddY(_remaining);

    var chartArea1 = new System.Web.UI.DataVisualization.Charting.ChartArea
    {
            Name = "ChartArea1"
    };

    workChart.ChartAreas.Add(chartArea1);
    workChart.Width = 300;
    workChart.Height = 500;

    System.IO.MemoryStream imageStream = new System.IO.MemoryStream();
    workChart.SaveImage(imageStream, ChartImageFormat.Png);
    return null;
}

经过多次尝试、错误和搜索,我找到了我的答案。。。我从来没有找到一个简单的例子来说明我需要做什么,但我能够从我找到的部分拼凑出一个解决方案

要执行我试图执行的操作,我需要在控制器类中actionresult方法的末尾包含以下代码:

        System.IO.MemoryStream chartStream = new System.IO.MemoryStream();
        workChart.SaveImage(chartStream, ChartImageFormat.Png);
        return File(chartStream.ToArray(), ("chart/png"));