使用ASP.NET MVC5我知道我可以简单地从控制器加载图像标记的源代码,如下所示:
<img class="img-thumbnail" src="@Url.Action("GetImage", "Product", new { Model.ProductId })" />
控制器返回FileContentResult
public FileContentResult GetImage(int productId) {
Product prod = repository.Products
.FirstOrDefault(p => p.ProductID == productId);
if (prod != null) {
// ImageData is the byte array
return File(prod.ImageData, prod.ImageMimeType);
} else {
return null;
}
}
我的视图需要将图像作为div的CSS背景加载:
<div class="mdl-card__media mdl-color-text--grey-50" style="padding-left: 10px; height:274px; background: url('@Model.ImagePath;')">
使用绝对路径E:\Development\ortund\blog\blog\Content\Images\uploads\{filename}
但是,正确保存了字节数组。
我可以使用@Url.Action()
方法将图像的字节数组加载到css中并以这种方式渲染图像吗?
如果没有,怎么办呢?
答案 0 :(得分:0)
@Url.Action()
不是这种方式。
相反,我将数据库中的图像字节数组转换为base64字符串,然后将其用作背景:
<div style="background: url(data:@Model.ImageMimeType;base64,@Convert.ToBase64String(Model.Image) )"></div>