如何在视图中渲染图像.image = byte []的值.asp.net mvc

r.r*_*r.r 1 c# asp.net-mvc image

我在类型的数据库中有图像值"image".在视图中保存的类型byte[] 我希望在我的asp.net mvc视图中将其显示为图像.最好的就像图像一样.保存图像时的值Model.ImageData.

我试图像这样解决它:

<img height="450px" width="330px" src="<%= historyItem.ImageData %>" alt="image" />
Run Code Online (Sandbox Code Playgroud)

但它不起作用.怎么做?

Dar*_*rov 6

您的方法的问题在于您已将图像数据作为视图模型的一部分包含在内,但<img>标记需要该src属性中的URL .有些浏览器支持将base64嵌入式图像放在HTML中,但我建议你避免使用这种方法,因为标记量可能会增加.

所以你需要一个控制器动作来提供图像:

public ActionResult Image()
{
    byte[] imageData = ...
    return File(imageData, "image/png");
}
Run Code Online (Sandbox Code Playgroud)

然后srcimg标记的属性指向此控制器操作:

<img height="450px" width="330px" src="<%= Url.Action("Image") %>" alt="image" />
Run Code Online (Sandbox Code Playgroud)