c# - 如何从保存在数据库中的字节数组设置CSS背景图像

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

使用 ASP.NET MVC5 我知道我可以像这样简单地从 Controller 加载图像标签的源:

<img class="img-thumbnail" src="@Url.Action("GetImage", "Product", new { Model.ProductId })" />

随着 Controller 返回 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;
    }
}

但是,我的 View 需要将图像加载为 div 的 CSS 背景:

<div class="mdl-card__media mdl-color-text--grey-50" style="padding-left: 10px; height:274px; background: url('@Model.ImagePath;')">

ImagePath 值未正确保存,使用绝对路径 E:\Development\ortund\blog\blog\Content\Images\uploads\{filename}

然而,字节数组被正确保存。

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

如果不行,怎么办?

最佳答案

@Url.Action() 不是执行此操作的方法。

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

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

关于c# - 如何从保存在数据库中的字节数组设置CSS背景图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065395/

相关文章:

c# - 从 C# 源代码发出 IL 操作码

c# - 如何隔离 DbSet 等数据源?

post - MVC POST 请求丢失授权 header - 检索后如何使用 API 承载 token

asp.net-mvc - 从单个 MVC 方法返回 Response.Redirect 或 ActionResult

javascript - js 正则表达式来测试/查找无效的 css 类名(以数字开头)

asp.net - 没有 ASP.NET 身份的电子邮件确认和密码策略

c# - 使用 CancellationToken 取消任务而不在任务中明确检查?

c# - call property change 当它的属性更新时回调

css - 为什么子元素 <img/> 不包含父 div 的宽度和高度?

Safari 中的 CSS vw 和高度 100%