Не выполняйте действия контроллера AJAX, которые возвращают изображения, файлы или что-то еще.Гораздо более простым решением является следующее:
$('body').append(
$('<img/>', {
src: '@Url.Action("Action", "Controller")?parameter1=' + encodeURIComponent(parameter1Value) + '¶meter2=' + encodeURIComponent(parameter2Value),
alt: 'some image'
})
);
Это просто динамически внедряет следующий тег <img>
в конец <body>
(вы, конечно, можете адаптировать местоположение, если вам не нравитсяbody):
<img src="/Controller/Action/?parameter1=foo¶meter2=bar" alt="some image" />
Все остальное сделает браузер.Просто убедитесь, что действие контроллера возвращает File
результат.
Также, если эти изображения генерируются динамически каждый раз, IE может вызывать определенные PITA, поскольку он может их кэшировать.Чтобы уничтожить кеш, добавьте случайную метку времени к URL:
$('body').append(
$('<img/>', {
src: '@Url.Action("Action", "Controller")?parameter1=' + encodeURIComponent(parameter1Value) + '¶meter2=' + encodeURIComponent(parameter2Value) + '&cacheBuster=' + encodeURIComponent((new Date()).getTime()),
alt: 'some image'
})
);