Asp Mvc: установить встроенный css background-image: url с изображением, хранящимся в базе данных - PullRequest
0 голосов
/ 22 сентября 2019

Я сохраняю изображения в базе данных и могу получить их в виде благодаря методу 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

Спасибозаранее

1 Ответ

0 голосов
/ 22 сентября 2019

Я такой идиот!

Я был так сосредоточен на background-image: url ('...'), потому что цветовой синтаксис Visual Studio не был бы правильным, что я полностью забыл дать размер этому чертову div!

Оба метода на самом деле работают хорошо и отображают изображение.

К сожалению об этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...