如何从System.Drawing.Bitmap(<img/>标签?)中提供图像?)

时间:2010-10-12 01:15:09

标签: asp.net-mvc bitmap system.drawing system.drawing.imaging

我正在向ASP.NET MVC中的View发送一个位图。我的ViewModel中有一个属性:

public Bitmap TemplateImage { get; set; }

在我的视图中,我希望能够渲染该Bitmap图像,但我无法弄清楚如何做到这一点。

2 个答案:

答案 0 :(得分:3)

一种解决方案是创建一个新的动作,如下所示:

public FileContentResult Show(int id)
{
    var category = northwind.AllCategories().Single(c => c.CategoryID == id);
    byte[] imageByte = category.Picture;
    string contentType = "image/jpeg";

    return File(imageByte, contentType);
}

并发送图像的ID,并像这样引用它:

<img src="<%: Url.Action("Show","Image",new { id = Model.Category.CategoryID  }) %>

答案 1 :(得分:0)

由于HTTP无法将HTML和二进制图像数据同时包含在同一连接中的同一个管道中,因此将Bitmap数据传递给View无意义。您必须通过存储(可能是暂时的)位图数据并让客户端通过唯一的URL请求它来找到另一种方法。