图像的MVC URL下载图像而不是显示视图

时间:2016-08-04 23:11:00

标签: c# asp.net asp.net-mvc asp.net-mvc-4

新手MVC。我正在尝试使用MVC在浏览器中显示图表,但是当我运行应用程序时,页面会下载图像并关闭。

我的控制器

 public ActionResult DrawChart()
    {
        var chart = new Chart(width: 300, height: 200)
            .AddSeries(
                        chartType: "bar",
                        xValue: new[] { "10 Records", "20 Records", "30 Records", "40 Records" },
                        yValues: new[] { "50", "60", "78", "80" })
                        .GetBytes("png");

        return File(chart, "image/bytes");
    }

我的观点

    @{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>DrawChart</title>
</head>
<body>
    <div> 
        <img src="@Url.Action("DrawChart")" alt="Drawing chart with HTML Helper" />
    </div>
</body>
</html>

2 个答案:

答案 0 :(得分:1)

您正在返回mime类型为image/bytes的文件结果,并且您还调用了GetBytes("png")方法(我假设它正在获取PNG字节)。

在这种情况下,你可以尝试return File(chart, "image/png");这应该指示浏览器显示图像。

答案 1 :(得分:1)

您可以使用Razor直接将其写入View,如下所示,或使用Partial view并将其渲染到您想要的地方

    <div>
@{
    var chart = new Chart(width: 300, height: 200)
                .AddSeries(
                            chartType: "bar",
                            xValue: new[] { "10 Records", "20 Records", "30 Records", "40 Records" },
                            yValues: new[] { "50", "60", "78", "80" })
                            .Write();
    }
</div>

请参阅此链接:http://www.asp.net/web-pages/overview/data/7-displaying-data-in-a-chart