4

我发现 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从那里保存?

4

1 回答 1

7

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

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
};
于 2015-12-22T05:23:38.680 回答