在MVC中显示来自IMAGE对象的图像

时间:2009-09-04 14:28:27

标签: asp.net-mvc

我有一个IMAGE类型的对象,它保存图像。 我想在MVC视图中显示图像以及其他控件。 我能想到的方法是临时存储磁盘上的映像并设置img控件的src。 我相信会有更好的方法。

5 个答案:

答案 0 :(得分:4)

在我看来,最简单的方法是从控制器返回FileStreamResult

public FileResult GetImage()
{
    string path = "c:\images\image.jpg";
    return new FileStreamResult(new FileStream(path, FileMode.Open), "image/jpeg");
}

这是一个简单的实现,但为您提供了尝试的起点。

答案 1 :(得分:4)

如果您有兴趣实施@Giovanni's答案,那么我的代码可能会对我在here找到的过去答案有所帮助。 ImageHandler类是您希望在Giovanni案例中实现的示例。

答案 2 :(得分:2)

您可以编写处理程序以将图像流出,然后在图像标记中引用光标。

例如,您有http://myapp/media.ashx?imageId=10流出图像。在您的页面中,您可以像这样引用: <img src="http://myapp/media.ashx?imageId=10"/>

这样您就不必临时写入磁盘。

答案 3 :(得分:1)

您可以将图像作为控制器操作的响应内容提供。此响应将图像类型作为内容类型。

答案 4 :(得分:0)

您可以将图像转换为Base64字符串并将其指定给img标记的src属性。

<img alt="Embedded Image" width="168" height="32" 
  src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKgA..." />

http://www.greywyvern.com/code/php/binary2base64