Как сделать изображение в asp.net mvc?

У меня есть образец, который я строю, используя базу данных Northwind. У меня есть представление, в котором я показываю все продукты для категории specificc и использую ul для создания элементов с изображением и именем и ценой продукта.

Я использовал здесь код http://blogs.msdn.com/b/miah/archive/2008/11/13/extending-mvc-returning-an-image-from-a-controller-action.aspx.

И пришли к выводу, что если я щелкнул правой кнопкой мыши изображение на моей странице, я получу следуйте за URL-адресом изображения.

Это метод действия, который я предоставил, который просто принимает идентификатор категории. /Фото/показать/1

Мой метод действий в моем ImageController выглядит следующим образом:

//
 // GET: /Image/Show
 public ActionResult Show(int id)
 {
 var category = northwind.AllCategories().Single(c => c.CategoryID == id);
 byte[] imageByte = category.Picture;
 string contentType = "image/jpeg";
 return this.Image(imageByte, contentType);
 }

Примечание. Изображение является байтом []

Затем я назову это на мой взгляд следующим образом. (продукт - это модель для моего представления)

   

Но я все еще не могу получить изображение, которое будет отображаться.

4 ответа

Изменить действие

public FileContentResult Show(int id)
{
 var category = northwind.AllCategories().Single(c => c.CategoryID == id);
 byte[] imageByte = category.Picture;
 string contentType = "image/jpeg";
 return File(imageByte, contentType);
}

и отправить экземпляр продукта для просмотра и попробовать его в представлении

" />


Попробуйте использовать этот метод вместо:

public FileContentResult Show(int id)
{
 var category = northwind.AllCategories().Single(c => c.CategoryID == id); 
 byte[] imageByte = category.Picture; 
 string contentType = "image/jpeg";
 return File(imageByte, contentType);
}

Это должен быть базовый подход, если вы не используете это расширение. Если это работает, ошибка возникает в расширении, если это не работает, ошибка находится где-то в другом месте - возможно, в маршрутизации. Также проверьте ответ Густава!


Я не уверен, что это проблема, которая у вас есть, но я всегда использовал имена действий и контроллеров:

<%= Url.Action( "Show", "Image", new { id = product.Category.CategoryID } ) %>


Оказывается, мне пришлось использовать тип аноейного ', чтобы маршрут был /Image/Show/ 1, вместо/Image/Show? CategoryID = 1. Это и, конечно же, необходимо было обновить изображения в Northwind от bitmap до Jpeg.

licensed under cc by-sa 3.0 with attribution.