【问题标题】:Work flow for creating and returning PDF in MVC在 MVC 中创建和返回 PDF 的工作流程
【发布时间】:2012-10-24 15:14:30
【问题描述】:
我正在使用微软的 MVC 平台来创建一个 Web 应用程序。在这个应用程序中,用户将填写一个 HTML 表单,单击提交,被重定向到一个成功的消息页面,并收到一个表单的 pdf 格式的打印输出。此外,我还想将他们的条目以表格形式保存在数据库中。我正在使用 iTextSharp 创建和编辑 PDF。
我正在寻找有关在 MVC 中管理工作流的建议。具体来说,我有一个控制器方法可以指导工作流程:
- 将表单条目保存到数据库中,
- 创建和编辑 PDF,
- 将用户引导至成功页面,
- 返回 PDF 供用户下载。
我的主要问题是:我应该如何委派重定向到成功页面并返回 pdf 的任务?截至目前,我的控制器似乎只能返回一个或另一个。我可以重定向到“附带”PDF 的视图吗?
【问题讨论】:
标签:
asp.net-mvc
pdf
itextsharp
【解决方案1】:
在这种情况下,我要做的是创建一个控制器操作,该操作返回与数据库中给定条目 id 关联的 PDF。
public FileResult DownloadPdf(int id)
{
byte[] data;
// ... Generate PDF
return File(data, "application/pdf");
}
然后处理表单 POST 的控制器操作执行以下操作:
- 将条目值保存到数据库中。
- 正在检索已保存表单条目集的主键。
- 重定向到成功视图并将主键传递给它。
然后,成功视图可以使用它提供的 ID 来链接到 PDF(作为下载链接),或者可以将其嵌入到 iframe 中(糟糕!)。
请注意,这仅适用于您将值保存在数据库中。如果不使用数据库,您必须:
- 对查询字符串中的所有表单数据进行编码(大小有限)
- 将表单数据存储在Session中(不推荐)
希望对您有所帮助。