我在ASP.NET应用程序中向用户提供PDF文件。我已经包含了我正在使用的代码。如果这是我在该请求上做的唯一事情,那么这很有效。我真正想做的是show在Form Load上提供这个PDF文件,而不会影响Form Load事件中的任何其他内容。有人能指出我在代码中做错了什么吗?谢谢!
Response.Clear();
Response.Buffer = true;
Response.ContentType = file.ContentType;
Response.AddHeader("content-disposition", String.Format("attachment; filename=\"{0}\"", file.OriginalFileName));
Response.TransmitFile(Path.Combine("C:\", file.FileName));
Response.End();
答案 0 :(得分:1)
Response.End()
将抛出ThreadAbortException
,其他任何内容都不会执行。字面意思结束页面输出。
我建议您创建另一个页面来生成PDF文件;如果你需要发送参数,你可以通过查询字符串发送它们。
答案 1 :(得分:1)
您需要一个单独的PDF下载页面。
您可以在表单提交后调用PDF生成页面(使用javascript,元刷新,iframe等)。效果将是表格发布,并做任何事情,然后将出现PDF下载框。
答案 2 :(得分:1)
如上所述,我可能会使用单独的页面,也不使用标准的asp.net管道,考虑使用自定义httphandler代替pdf,而且Phil Haack也很棒{{ 3}}让你开始。