0

我正在使用微软的 MVC 平台来创建一个 Web 应用程序。在这个应用程序中,用户将填写一个 HTML 表单,单击提交,被重定向到一个成功的消息页面,并收到一个表单的 pdf 格式的打印输出。此外,我还想将他们的条目以表格形式保存在数据库中。我正在使用 iTextSharp 创建和编辑 PDF。

我正在寻找有关在 MVC 中管理工作流的建议。具体来说,我有一个控制器方法可以指导工作流程:

  1. 将表单条目保存到数据库中,
  2. 创建和编辑 PDF,
  3. 将用户引导至成功页面,
  4. 返回 PDF 供用户下载。

我的主要问题是:我应该如何委派重定向到成功页面并返回 pdf 的任务?截至目前,我的控制器似乎只能返回一个或另一个。我可以重定向到“附带”PDF 的视图吗?

4

1 回答 1

0

在这种情况下,我所做的是创建一个控制器操作,该操作返回与数据库中给定条目 ID 关联的 PDF。

public FileResult DownloadPdf(int id)
{
    byte[] data;
    // ... Generate PDF
    return File(data, "application/pdf");
}

然后处理表单 POST 的控制器操作执行以下操作:

  1. 将条目值保存到数据库中。
  2. 检索已保存表单条目集的主键。
  3. 重定向到成功视图并将主键传递给它。

然后,成功视图可以使用它提供的 ID 来链接到 PDF(作为下载链接),或者可以将其嵌入到 iframe 中(糟糕!)。

请注意,这仅适用于您将值保存在数据库中。如果不使用数据库,则必须:

  1. 编码查询字符串中的所有表单数据(大小有限)
  2. 将表单数据存储在 Session 中(不推荐)

希望有帮助。

于 2012-10-24T15:41:52.613 回答