【发布时间】:2009-09-04 14:28:27
【问题描述】:
我有一个 IMAGE 类型的对象,其中包含图像。 我想在 MVC 视图中显示图像以及其他控件。 我能想到的方法是将图像临时存储在磁盘上并设置img控件的src。 我相信会有更好的方法来做到这一点。
【问题讨论】:
标签: asp.net-mvc
我有一个 IMAGE 类型的对象,其中包含图像。 我想在 MVC 视图中显示图像以及其他控件。 我能想到的方法是将图像临时存储在磁盘上并设置img控件的src。 我相信会有更好的方法来做到这一点。
【问题讨论】:
标签: asp.net-mvc
在我看来,最简单的方法是从控制器返回 FileStreamResult。
public FileResult GetImage()
{
string path = "c:\images\image.jpg";
return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg");
}
这是一个简单的实现,但为您尝试做的事情提供了一个起点。
【讨论】:
如果您有兴趣实现@Giovanni's 答案,那么我有一些代码可能对我提供的位于here 的过去答案有所帮助。 ImageHandler 类是您希望在 Giovanni 的案例中实现的示例。
【讨论】:
您可以编写一个处理程序来输出图像,然后在您的图像标签中引用流媒体。
例如,您有http://myapp/media.ashx?imageId=10 流出图像。在您的页面中,您像这样引用:
<img src="http://myapp/media.ashx?imageId=10"/>.
这样您就不必临时写入磁盘。
【讨论】:
您可以将图像作为控制器操作的响应内容提供。此响应将图像类型作为内容类型。
【讨论】:
可以将图片转成Base64字符串,赋值给img标签的src属性。
<img alt="Embedded Image" width="168" height="32"
src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgA..." />
【讨论】: