Вы уверены, что это, как вы хотите, чтобы отобразить изображение, даже если решение работает для вас, или вы открыты для других реализаций?
Обычно лучше не хранить изображения и двоичные данные в базе данных (по соображениям производительности и стоимости), и вы также не хотите вставлять двоичные данные изображения на страницу так, как вы это делаете, так как это увеличит время загрузки страницы и вы не сможете использовать множество встроенных функций для оптимизации из коробки (кеширование IIS, кеширование браузера, сжатие ...)
Лучшим подходом может быть сохранение образ на диске и путь в базе данных, в вашем коде создается элемент HTML img с использованием свойства «src» с указанием пути в качестве URL-адреса.
Даже если вам все равно нужно сохранить изображение в базе данных, вам может быть лучше сохранить двоичные данные на диск и оттуда оттуда вместо того, чтобы встраивать массив байтов.
Я могу предоставить вам дополнительную информацию, если вы хотите ознакомиться с этой опцией.
------- Обновление февраль-03-17 -------
По вашему мнению, вы хотите построить HTML файл со ссылкой на сохраняемое изображение, независимо от него которые хранятся в базе данных или на диске либо с помощью ссылки на действия контроллера, такие как:
<img src='@Url.Action("GetProfileImage", "User", new { Model.UserName })'/>
или по ссылке в ваших ViewModel, такие как:
<img src= "@Url.Content(Model.ImagePath)" alt="Image" />
Что касается хранения пути изображения в вашей базе данных есть много способов.Простая реализация для хранения изображений в каталоге в вашем сайте может выглядеть accepted answer in this post:
public ActionResult FileUpload(HttpPostedFileBase file)
{
if (file != null)
{
Database1Entities db = new Database1Entities();
string ImageName = System.IO.Path.GetFileName(file.FileName);
string physicalPath =Server.MapPath("~/images/"+ ImageName);
// save image in folder
file.SaveAs(physicalPath);
//save new record in database
tblA newRecord = new tblA();
newRecord.fname = Request.Form["fname"];
newRecord.lname = Request.Form["lname"];
newRecord.imageUrl = ImageName;
db.tblAs.Add(newRecord);
db.SaveChanges();
}
//Display records
return RedirectToAction("../home/Display/");
}
Для отображения моей рекомендации будет реализовать контроллер, восстановить путь изображения из базы данных и возвращает ссылку, как в this post:
public ActionResult Image(string id)
{
var dir = Server.MapPath("/Images");
var path = Path.Combine(dir, id + ".jpg"); //validate the path for security or use other means to generate the path.
return base.File(path, "image/jpeg");
}
Данные успешно считываются из базы данных. –
(U3lzdGVtLkJ5dGVbXQ ==) это значение string64 при отладке –
Насколько велика изображение; это похоже на небольшое строковое значение base-64, если изображение действительно мало? –