Rotativa PDF 导出 - 无法同时显示内联和文件名

Rotativa PDF export - unable to display inline and having a filename at the same time

我发现 Rotativa 是一种导出为 PDF 的简单方法(工作几乎完美,除了 CSS3 似乎不受支持,也许在未来的版本中)......但我想知道如何处理FileName 选项。

当我

return new Rotativa.ViewAsPdf("myViewName", "~/Views/Shared/_PDFLayout.cshtml", myModel)
{
    FileName = "myCorrectlyNamed.pdf",
    PageSize = ... // plus some more options
};

然后我会myCorrectlyNamed.pdf下载。当我省略 FileName 选项时,PDF 显示在浏览器中,但是当我从那里保存它时,它只有默认文件名 document.pdf.

如何在浏览器中生成和显示 pdf 并在从那里保存文件时使用 document.pdf 以外的文件名?

您可以将 Content-Disposition header 添加到 Response。使用此 header,您将能够告诉浏览器 显示内联文件 并指定应使用的 名称 当用户尝试保存文件时。

Response.AppendHeader("Content-Disposition", new System.Net.Mime.ContentDisposition { Inline = true, FileName = "myCorrectlyNamed.pdf" }.ToString());
return new Rotativa.ViewAsPdf("myViewName", "~/Views/Shared/_PDFLayout.cshtml", myModel)
{
    PageSize = ... // plus some more options
};