我的控制器,简而言之就是:
chart1.SeriesCollection.Add(SC);
using (MemoryStream ms = chart1.GetChartStream())
{
return File(ms.ToArray(), "image/png");
}
我的观点是:
$('#targetDiv').load("Home/GetImage");
我渲染时会出现乱码。有什么想法吗?
感谢, rodchar
答案 0 :(得分:2)
您需要使用img
标记:
<img src="Home/GetImage" alt="" />
当您编写$('#targetDiv').load("Home/GetImage");
时,您基本上是在说:使用Ajax向Home/GetImage
发送GET请求,如果请求成功,则使用结果更新#targetDiv
的内容。当您的控制器操作发送二进制数据时,此二进制数据将被注入div。
答案 1 :(得分:1)
您应该设置响应的内容类型,以适应您发回图像的事实。如果你不这样做,你的二进制流将被解释为文本,因此你会得到乱码。
答案 2 :(得分:1)
在您阅读文件并将其发回之前,请尝试将其添加到您的代码中
this.Response.Clear();
this.Response.ContentType = "image/png";
在标记端而不是将内容放入div中,您需要将其放入图像标记中。