我有一个.NET MVC 4应用程序,可以将图像存储在数据库中。我正在检索这样的图像:
byte[] imageBytes = dbObject.dbImage;
MemoryStream ms = new MemoryStream(imageBytes);
System.Drawing.Image image = System.Drawing.Image.FromStream(ms);
所以现在我有了图像,我只想在MVC视图中显示它。如果不在本地保存图像,我无法弄清楚如何做到这一点,这看起来很疯狂。我已经阅读了有关创建处理程序的其他建议,但这对于这样一个简单的任务来说似乎有些过分。
如何在视图中显示此图像?
答案 0 :(得分:4)
您可以将字节转换为Base64并将其嵌入data:
URI。
请注意,这不适用于IE< 8。
答案 1 :(得分:2)
您可以创建一个返回图像的Action,例如
<强>控制器强>
public ActionResult GetImage(int imageId) {
byte[] imageBytes = dbObject.dbImage;
MemoryStream ms = new MemoryStream(imageBytes);
return File(ms, "image/png", "myimage.png");
}
查看强>
<img src="@Url.Action("GetImage", "MyController", new { imageId = 1 })" alt="MyImage" />
答案 2 :(得分:1)
您只需使用FileResult
控制器的
public ActionResult Images() {
byte[] imageBytes = dbObject.dbImage;
return File(imageBytes, "image/png");
}
视图的
<img src="@Url.Action("Images", "Controller")" />