【问题标题】:Work flow for creating and returning PDF in MVC在 MVC 中创建和返回 PDF 的工作流程
【发布时间】:2012-10-24 15:14:30
【问题描述】:

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

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

  1. 将表单条目保存到数据库中,
  2. 创建和编辑 PDF,
  3. 将用户引导至成功页面,
  4. 返回 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 的控制器操作执行以下操作:

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

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

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

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

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-19
      • 1970-01-01
      • 2014-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多