ASP MVC 4.0图表控制正确渲染图像



我正在尝试使用ASP MVC 4.0(VS 2012 RC上的.net 4.5)在我的页面上呈现一个System.Web.UI.Datavisualization.Chart控件。我意识到直接在MVC页面视图上使用webforms控件并不容易/标准做法,所以我试图在控制器中使用一个操作来返回视图可以显示的图表图像。

在家庭控制器我有:

public FileResult DataChart()
{
        Chart newChart = new Chart()
        {
            Width = 500,
            Height = 300
        };
        List<double> DataPoints = new List<double>();
        new LogModelContainer().Measurements.Select(i => i.MU).ToList().ForEach(i => DataPoints.Add(i));
        Series newSeries = new Series()
        {
            ChartType = SeriesChartType.Bar
        };
        newSeries.Points.Add(DataPoints.ToArray());
        newChart.Series.Add(newSeries);
        newChart.ChartAreas.Add(new ChartArea());
        var returnVal = new MemoryStream();
        newChart.SaveImage(returnVal);
        return File(returnVal.GetBuffer(), @"image/png");
 }

注意:图表的数据来自一个链接到SQL数据库的EF 5模型(数据确实存在并正确加载)。

我正试图从Index.chtml中使用它,如下所示:

          <img src="/HomeController/DataChart" alt="" />  

这似乎相当于我在CodePlex(MVC图表控制示例CodePlex)上的示例中使用的内容,除了我不要求将参数传递给我的操作之外。

当我运行代码时,我得到的只是这个图表所在页面上的破损图像图标。我是一个完全的ASP新手(这是我第一个使用该技术的项目),所以我很可能在做一些愚蠢的事情。有人能告诉我怎么了吗?感谢

img src不是/Home而不是/HomeController吗?(不确定它们是否等效,但我总是只使用控制器名称,而不添加单词"controller")。话虽如此,使用Chrome/FF中的开发工具查看前端,看看图像源实际呈现为什么?

最新更新