MVC:如何回发用户选择并回复PDF

时间:2011-02-11 20:23:44

标签: asp.net-mvc-2 pdf-generation postback

这应该是一个简单的答案,但由于我是MVC的新手,我还没有完全了解我的方法:我想通过向浏览器发送PDF来回复用户点击链接。< / p>

  • 我在页面上有一串ID,我需要回发给该方法,以便它可以生成所请求的内容。
  • 我可以将PDF构建为暴露给控制器的内存流。
  • 我希望用户留在他们点击链接的同一页面上,并显示“保存到...”对话框。

假设我的控制器名为 Invoice ,方法是 DownloadInvoice ,我应该在视图上放置哪些ID(字符串),以及如何回复这个回发?

我可以简单地回复一下吗

return new FileStreamResult(generatedInvoice.Stream, "application/pdf");

或者我是否需要将观众引导至另一个具有完整

的视图
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=labtest.pdf");
Response.Buffer = true;
Model.Stream.WriteTo(Response.OutputStream);
Response.End();

2 个答案:

答案 0 :(得分:1)

你为什么不试试呢?

return new FileStreamResult(generatedInvoice.Stream, "application/pdf");

返回文件流,如下所示:文件。这不会向浏览器发送任何标题或任何内容,以告诉它加载另一个URL。

答案 1 :(得分:1)

无需其他观点。对于控制器操作,FileStreamResult应该足够了(您可能希望使用[Post]属性过滤此类操作。)