В моем приложении у меня есть структура папок, в которую вы можете загружать все виды файлов (jpg, png, pdf, txt и т. д.). Вы можете загрузить их напрямую в виде файла или просмотреть файл в браузере.
Чтобы отобразить файл в браузере, я использую следующее действие контроллера:
public virtual ActionResult FileDisplay(int fileId, bool isFile)
{
var viewmodel = _presenter.GetDocumentDisplayViewModel(fileId, isFile);
return base.File(viewmodel.Data, viewmodel.MediaType);
}
Файл отображается в браузере следующим образом: https://i.stack.imgur.com/TXmTy.jpg
На вкладке браузера отображается имя моего контроллера «FileDisplay» и (для этого примера) размеры изображения.
Вопрос: как отображать имя файла в заголовке вкладки браузера вместо имени контроллера? Это для всех типов файлов.
<сильный>1. Заголовок Content-Dispostion
Я нашел несколько сообщений, в которых говорится, что нужно добавить заголовок Content-Disposition к ответу с именем файла:
Но это не работает.
<сильный>2. Добавьте имя файла в конструктор файлов
return base.File(viewmodel.Data, viewmodel.MediaType, viewmodel.FileName);
Если я это сделаю, файл будет загружен, а не отображен в браузере.
<сильный>3. Название файла PDF
Я обнаружил, что иногда заголовок вкладки браузера правильный! Если я показываю файл PDF в браузере, у которого есть заголовок файла (заголовок в свойствах PDF, а не имя файла), заголовок браузера правильный: https://i.stack.imgur.com/orAZS.jpg
Может кто-то помочь мне с этим?