[英]how to render image in view. value of image = byte[]. asp.net mvc
我在"image"
类型的数据库中有image值。 在类型为byte[]
下保存的视图中,我想在asp.net mvc视图中将其显示为图像。 最好的只是图像。 如果图像保存在Model.ImageData.
下, Model.ImageData.
我试图像这样解决它:
<img height="450px" width="330px" src="<%= historyItem.ImageData %>" alt="image" />
但它不起作用。 怎么做?
这种方法的问题在于,您已将图像数据作为视图模型的一部分包括在内,但<img>
标记在src
属性中需要一个URL。 某些浏览器支持将base64嵌入式图像放置在HTML内,但是我建议您避免使用这种方法,因为标记量可能会增加。
因此,您将需要一个提供图片的控制器操作:
public ActionResult Image()
{
byte[] imageData = ...
return File(imageData, "image/png");
}
然后将img
标签的src
属性指向此控制器操作:
<img height="450px" width="330px" src="<%= Url.Action("Image") %>" alt="image" />
您必须创建一个单独的操作方法来返回FileResult
。
关于Stackoverflow的主题应该有很多不同的问题。 从这里尝试一下:
https://stackoverflow.com/search?q=fileresult+mvc+image
嵌入图像可能有解决方案。 但是除此之外,您还需要创建另一个操作来下载图像:
<img height="450px" width="330px"
src="<%: Url.Action("Image", "Controller", new { id=Model.ImageId }) %>"
alt="image" />
在控制器类中:
public FileResult Image(int id)
{
byte[] imageData = getImageBytes(id);
string mimeType = getMimeType(id);
return new FileStreamResult(new System.IO.MemoryStream(imageData), mimeType );
}
我不是ASP.NET的专家。 也就是说,您可以将其转换为图像或位图吗?
在WinForm或背后的ASP.NET代码中,看起来像...。
Image img = historyItem.ImageData as Image;
if (img != null) {
// Do Something
}
〜乔
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.