Как вернуть изображение из контроллера без установки тега Content-Disposition? - PullRequest
6 голосов
/ 02 декабря 2010

Итак, я использую MVC 2 , чтобы подавать некоторые изображения из действия контроллера. Общая мудрость ( 1 , 2 , 3 ), по-видимому, заключается в использовании одного из типов FileResult (FileStreamResult, FileContentResult или `FileContentResult «).

Однако все три конкретных FileResult устанавливают заголовок ответа Content-Disposition с помощью attachment; filename{YourFileNameHere}=UTF-8. Конечным результатом является то, что если пользователь просматривает мое изображение напрямую, а не встраивается в HTML, браузер открывает диалоговое окно сохранения, а не отображает изображение. Я бы предпочел, чтобы изображение просто отображалось в браузере.

Я думаю, это заставляет меня задуматься: использование MVC 2 Как правильно вернуть результат изображения, если изображение НЕ помечено для загрузки?

1 Ответ

5 голосов
/ 02 декабря 2010

Инфраструктура MVC использует свойство FileResult.FileDownloadName, чтобы определить, следует ли отправлять содержимое как встроенное или как вложение. Если вы создаете экземпляр типа FileResult напрямую, не устанавливайте его свойство FileDownloadName. В качестве альтернативы, если вы используете фабричные методы Controller.File, вызовите перегрузку, которая не принимает аргумент fileDownloadName (или не передает значение NULL для этого аргумента).

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