【发布时间】:2013-06-03 06:17:39
【问题描述】:
我正在尝试使用 C# 在 ASP MVC 中下载 pdf 文件。
我有一个 UI 对话框,其中有一个按钮调用控制器:
"Download PDF": function () {
$.post(Urls.Action.DownloadPDF);
在控制器中,我使用 PDF 转换器将 html 转换为 PDF:
public ActionResult DownloadPDF()
{
string htmlToConvert = RenderViewAsString("~/Content/Eula.htm");
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory(htmlToConvert,null);
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=Download.pdf");
FileResult fileResult = new FileContentResult(pdfBuffer, "application/pdf");
fileResult.FileDownloadName = "Download.pdf";
return fileResult;
}
代码在调试器中运行该方法没有问题,并且帖子返回成功,但浏览器未下载 PDF。
编辑 -
核心价值 响应 HTTP/1.1 200 OK Cache-Control private, s-maxage=0,private,no-store,no-cache,s-maxage=0,max-age=0,must-revalidate,proxy-revalidate,no-transform 杂注无缓存 内容类型应用程序/pdf 过期 -1 服务器 Microsoft-IIS/7.5 设置Cookie 脸书;路径=/; HttpOnly X-AspNetMvc-版本 3.0 内容处置附件;文件名=下载.pdf 内容处置附件;文件名=下载.pdf X-AspNet-版本 4.0.30319 X-Powered-由 ASP.NET X-Content-Type-Options nosniff X-XSS-保护1;模式=块 X-UA 兼容 IE=edge,chrome=1 日期 2013 年 6 月 7 日星期五 03:31:34 GMT 内容长度 81862【问题讨论】:
-
“浏览器没有下载 PDF”不是一个非常具有描述性的诊断。您的浏览器的 F12 工具对发送的网络活动和标头有何说明?您希望浏览器保存文件(使用
content-disposition)还是在窗口中查看? -
我之前添加了内容配置...请查看带有响应标题的编辑。
标签: asp.net-mvc pdf