Asp.net 图表流未正确呈现

Asp.net 图表流未正确呈现,asp.net,jquery,asp.net-mvc,Asp.net,Jquery,Asp.net Mvc,我的控制器,简而言之是: chart1.SeriesCollection.Add(SC); using (MemoryStream ms = chart1.GetChartStream()) { return File(ms.ToArray(), "image/png"); } 我的看法是: $('#targetDiv').load("Home/GetImage"); 渲染时,我会得到乱码

我的控制器,简而言之是:

        chart1.SeriesCollection.Add(SC);
        using (MemoryStream ms = chart1.GetChartStream())
        {
            return File(ms.ToArray(), "image/png");
        }
我的看法是:

        $('#targetDiv').load("Home/GetImage");
渲染时,我会得到乱码字符。有什么想法吗

谢谢,
rodchar

您需要使用
img
标签:

<img src="Home/GetImage" alt="" />


当您编写
$('#targetDiv').load(“Home/GetImage”)
您的基本意思是:使用Ajax将GET请求发送到
Home/GetImage
,如果请求成功,则使用结果更新
#targetDiv
的内容。当控制器操作发送二进制数据时,该二进制数据将被注入div。

您需要使用
img
标记:

<img src="Home/GetImage" alt="" />


当您编写
$('#targetDiv').load(“Home/GetImage”)
您的基本意思是:使用Ajax将GET请求发送到
Home/GetImage
,如果请求成功,则使用结果更新
#targetDiv
的内容。当控制器操作发送二进制数据时,该二进制数据将被注入到div中。

您应该设置响应的内容类型,以适应发送回图像的事实。如果您不这样做,您的二进制流将被解释为文本,因此您会得到乱码


这里有一个相关的问题:

您应该设置响应的内容类型,以适应发送回图像的事实。如果您不这样做,您的二进制流将被解释为文本,因此您会得到乱码


这里有一个相关问题:

在阅读文件并将其发回之前,请尝试将其添加到代码中

this.Response.Clear();
this.Response.ContentType = "image/png";

在标记端,您需要将内容放在图像标记中,而不是放在div中。

在读取文件并将其发送回之前,尝试将其添加到代码中

this.Response.Clear();
this.Response.ContentType = "image/png";

在标记端,您需要将内容放入图像标记中,而不是将其放入div。

+1。使用Ajax的正确方法是将img标记的“src”属性设置为新值(例如getimage?value1=&value2等)+1。使用Ajax的正确方法是将img标记的“src”属性设置为新值(例如getimage?value1=&value2等)。感谢大家的帮助,rod。感谢大家的帮助,rod。