Я сохраняю изображения в базе данных и могу получить их в виде благодаря методу Get из моего контроллера Img, который возвращает File([] fileContents, string contentType)
.
Нет проблем, чтобы отобразить его в представлении с помощью:
<img src="@Url.Action("Get", "Img", new { id = Model.ImgId})"
Напротив, когда я пытаюсь передать URL изображения внутри встроенного фона,изображение: URL, это не работает.
1) Я пробовал это в представлении, используя тот же контроллер Img, чтобы получить изображение:
<div style="background-image: url('@Url.Action("Get", "Img", new { id = Model.ImgId})')"></div>
, которое отображает этот HTML-код, но не отображает изображение:
<div class="imageBox" style="background-image: url('/Img/Get/2')"></div>
2) Я попробовал это в пользовательском контроллере:
string formatWithoutPoint = user.Img.Format.Substring(1);
string imageBase64Data = Convert.ToBase64String(user.Img.Data);
string imageDataURL = string.Format("data:image/" + formatWithoutPoint + ";base64,{0}", imageBase64Data);
ViewBag.ImgSrc = imageDataURL;
И это в представлении:
<div class="img" style="background-image: url('@ViewBag.ImgSrc')"></div>
, которыйотображает этот HTML-код, но не отображает изображение:
<div style="background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAU...')"></div>
Я не понимаю ... У вас есть идеи?
Я знаю, что у кого-то была такая же проблема, но он не поделился тем, как ему, наконец, удалось ее решить: ASP MVC: загрузить изображение из базы данных как полный фон CSS
Спасибозаранее