У меня есть действие контроллера, которое возвращает FileResult, подобный этому
return this.File("file.pdf", "application/pdf");
для URL "/ Download / 322" - где 322 - идентификатор файла.
Это прекрасно работает, так что если пользователь нажимает на ссылку на PDF - он открывается в веб-браузере, если у него установлен плагин PDF.
Но что, если они щелкнут правой кнопкой мыши по ссылке и выберут "Сохранить как ..."? Браузер всплывает с именем файла «322.» Я бы хотел иметь более подходящее имя файла, выполнив что-то вроде этого:
return this.File("file.pdf", "application/pdf", "file.pdf");
Но если я изменю контроллер так, чтобы он возвращался таким образом, он всегда будет всплывать в окне загрузки, поскольку MVC устанавливает заголовок Content-Disposition для вложения (поэтому я не могу встроить файл).
Итак, могу ли я как-то обнаружить, что пользователь пытается загрузить файл, а файл просто встраивается во что-то на странице?