Я новичок в веб-разработке ASP.NET MVC.Показать изображение из базы данных в MVC
Я хотел показать изображение в теге img в виде бритвы из базы данных SQL-сервера.
В моей модели изображение хранится в виде массива байтов:
public class Business
{
public string ID { get; set; }
[Required]
public string BusinessName { get; set; }
public string City { get; set; }
[Required]
public string Description { get; set; }
public byte[] LogoImage { get; set; }
}
В контроллере я получаю данные изображения из БД [VARBINARY (MAX)] колонка:
...
LogoImage = (byte[])reader["LogoImage"]
...
В view У меня есть стандартный шаблон данных, где я помещаю следующий код:
@{
var base64 = Convert.ToBase64String(model.LogoImage);
var imgSrc = String.Format("data:image/gif;base64,{0}", base64);
}
<img src='@imgSrc' style="max-width:100px; max-height:100px;" />
Итак, я действительно борется вид бритвы, если обрабатывать один, другая ошибка. Другие свойства показаны за исключением изображения.
Может ли кто-нибудь предложить, как мне показать изображение в режиме бритвы? Хорошо ли заполнять изображение как img src = '... long data ...'? Как передать или получить доступ к массиву из модели? Должен ли я преобразовать его в строку как @ Html.DisplayFor (model => model.LogoImage)?
Какая ошибка у вас? Код должен работать, если вы замените «model.Image» на «model.LogoImage», и если изображение действительно имеет формат gif. – NineBerry
@NineBerry Thnx для быстрого ответа, я изменился на LogoImage (опечатка). Поэтому rn Я не могу получить доступ к массиву модели как model.LogoImage говорит, что «модель» не существует в текущем контексте. Должен ли я получить доступ как Html.DisplayFor (model => model.LogoImage)? – user2992532
Вам нужно указать модель с капиталом M. Html.DisplayFor не знает, как обращаться с изображениями – NineBerry