Отображение изображений, возвращаемых как ActionResult (байтовый массив), приводит к зависанию IE6 - PullRequest
7 голосов
/ 23 августа 2010

Microsoft MVC, C #, IIS, CSS вопрос.

У меня проблема со следующим сценарием в IE6:

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

Эти объекты BinaryResult затем назначаются атрибуту src элементов img на странице.

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

Этот подход, кажется, прекрасно работает в IE8, IE7.

Однако в IE6 он будет загружаться только изначально. Если я отойду от страницы, затем вернусь, загрузка изображения приведет к зависанию Ie6. (ну, в принципе, вы можете оставить его на час, после чего он будет отзывчивым - но изображения вообще не отображаются).

Первоначально - по умолчанию я удалил CSS (думая, что это IE6 ... но, похоже, он работает нормально, если я отображаю изображения, которые не были получены через BinaryResult).

Кроме того, были изменены настройки сервера IIS для сжатия, а также настройки памяти браузера IE6.

Могу по-настоящему оценить любую помощь - если кто-то там сталкивался с подобной проблемой.

Ответы [ 2 ]

10 голосов
/ 23 августа 2010

Не уверен, что проблема может быть, но попробуйте это:

public ActionResult Image()
{
    byte[] image = FetchImage();
    return File(image, "image/png"); // adjust content type appropriately
}

А по вашему мнению:

<img src="<%= Url.Action("Image") %>" alt="" />
0 голосов
/ 10 января 2016

Используйте этот код в контроллере:

public FileStreamResult ShowImage()
{
     MemoryStream ms = new MemoryStream();
     //
     // Create Image
     //
     ms.Position = 0;

     return new FileStreamResult(ms, "image/jpeg");
}

и вот код для img тега:

<img src="~/YourController/ShowImage" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...