как сделать изображение на виду. значение изображения = байт []. asp.net mvc - PullRequest
1 голос
/ 23 марта 2011

У меня есть значение изображения в базе данных типа "image". вид сохранен под типом byte[] Я хочу показать это как изображение в моем виде asp.net MVC. лучший его как изображение. значение, если изображение сохранено в Model.ImageData.

Я пытался решить это так:

<img height="450px" width="330px" src="<%= historyItem.ImageData %>" alt="image" />

но это не работает. как это сделать?

Ответы [ 4 ]

6 голосов
/ 23 марта 2011

Проблема вашего подхода заключается в том, что вы включили данные изображения как часть модели представления, но тег <img> ожидает URL-адрес в атрибуте src. Некоторые браузеры поддерживают base64 встроенные изображения для размещения внутри HTML, но я бы порекомендовал вам избегать такого подхода, поскольку объем вашей разметки может возрасти.

Итак, вам понадобится действие контроллера, которое обслуживает образ:

public ActionResult Image()
{
    byte[] imageData = ...
    return File(imageData, "image/png");
}

и затем укажите атрибут src тега img на это действие контроллера:

<img height="450px" width="330px" src="<%= Url.Action("Image") %>" alt="image" />
0 голосов
/ 23 марта 2011

Я не эксперт по ASP.NET.Тем не менее, вы можете привести его к изображению или растровому изображению?

На WinForm или в коде ASP.NET, это будет выглядеть примерно так ...

Image img = historyItem.ImageData as Image;
if (img != null) {
  // Do Something
}

~ Джо

0 голосов
/ 23 марта 2011

Может быть решение со встроенными изображениями. Но помимо этого вам нужно создать еще одно действие для загрузки изображения:

<img height="450px" width="330px" 
     src="<%: Url.Action("Image", "Controller", new { id=Model.ImageId }) %>"
     alt="image" />

В классе контроллеров:

public FileResult Image(int id)
{
  byte[] imageData = getImageBytes(id);
  string mimeType = getMimeType(id);

  return new FileStreamResult(new System.IO.MemoryStream(imageData), mimeType );
}
0 голосов
/ 23 марта 2011

Вам нужно создать отдельный метод действия, который возвращает FileResult.

Там должно быть много разных вопросов о Stackoverflow по этому вопросу. Попробуйте что-нибудь отсюда:
https://stackoverflow.com/search?q=fileresult+mvc+image

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