如何从保存在数据库

时间:2017-03-28 09:13:15

标签: c# css asp.net-mvc-5

使用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}

,ImagePath值无法正确保存

但是,正确保存了字节数组。

我可以使用@Url.Action()方法将图像的字节数组加载到css中并以这种方式渲染图像吗?

如果没有,怎么办呢?

1 个答案:

答案 0 :(得分:0)

@Url.Action()不是这种方式。

相反,我将数据库中的图像字节数组转换为base64字符串,然后将其用作背景:

<div style="background: url(data:@Model.ImageMimeType;base64,@Convert.ToBase64String(Model.Image) )"></div>