MVC 3 Изображение с использованием EF - PullRequest
2 голосов
/ 07 февраля 2012

У меня есть база данных, в которой хранится изображение в виде байтового массива и соответствующий класс в EF. Теперь у меня есть представление, которое строго типизировано, принимая IEnumerable. В представлении я хочу просмотреть все входящие MyImage и отобразить их, что-то вроде:

foreach(var drawing in model)
{
     <img src=@drawing.Image alt="drawing" />
}

Это упрощенная версия того, что я хочу. Что мне нужно сделать вместо тега img ???

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

Полагаю, вам нужно создать отдельный контроллер для возврата изображений. Этот контроллер будет принимать идентификатор изображения (или любой другой идентификатор) и возвращать изображение, как описано, например, здесь Отображение изображения на экран из контроллера MVC

Итак, ваш код будет выглядеть так:

foreach(var drawing in model)
{
     <img src="@Url.Action("GetImage", "Image", new {id=drawing.ImageId})" alt="drawing" />
}

Второй подход заключается не в том, чтобы вернуть изображение, а, во-первых, сохранить его на диск и вернуть путь к нему. Но, вероятно, это не то, что вы хотите.

0 голосов
/ 07 февраля 2012

Попробуйте создать метод действия, который будет возвращать байтовый массив в виде содержимого как image / png типа содержимого.

class ImageContent
{
   public ActionMethod Image(int? id = 0)
   {
        // Get byte from table by image id
        ....


        return Content(byteArray.ToString(), "image/png");
   }
}

и передавать URL-адрес этому методу действия

@foreach(var drawing in Model)
{
     <img src="@Url.Content("~/ImageContent/Image/" + drawing.DrawingID)" />
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...