.NET Framework 4.7.2 MVC 项目
我有一个动态加载 PDF 以内联返回到浏览器的控制器操作。一切正常,除了文件名未显示在浏览器标题栏或选项卡中。相反,浏览器显示“id”参数的值,大概是因为它跟在最后一个斜杠后面。
我需要浏览器显示 PDF 文件名,以便用户知道他们正在查看的 PDF。我们的用户倾向于在选项卡中打开多个 PDF 并经常在它们之间切换。这是代码的简化版本:
public FileContentResult ViewPDF(int id)
{
byte[] pdfContents = loadPDF(id);
string filename = getPDFFilename(id);
var cd = new ContentDisposition
{
FileName = filename,
Inline = true
};
Response.AddHeader("Content-Disposition", cd.ToString());
string returnContentType = MimeMapping.GetMimeMapping(filename);
return File(pdfContents, returnContentType);
}
我也尝试过 FileStream,但没有成功,还尝试过 Edge、IE 和 Chrome,但它们都做同样的事情。在 Chrome 中,当我保存 PDF 时,它会以正确的文件名保存,但不会在浏览器中显示。