2012-10-24 30 views
0

我正在使用Microsoft的MVC平臺創建Web應用程序。在這個應用程序中,用戶將填寫一個HTML表單,點擊提交,重定向到一個成功的消息頁面,並以PDF格式接收打印輸出。另外,我還希望將他們的條目保存在數據庫中。我正在使用iTextSharp創建和編輯PDF。用於在MVC中創建和返回PDF的工作流程

我正在尋找關於管理MVC中的工作流的建議。具體來說,我有一個控制器的方法,將直接爲工作流程:

  1. 保存表單條目的數據庫,
  2. 創建和編輯PDF,
  3. 將用戶引導到一個成功的頁面,
  4. 返回PDF以供用戶下載。

我的主要問題是:我應該如何將重定向任務委託給成功頁面並返回pdf?截至目前,我的控制器似乎只能返回一個或另一個。我可以重定向到「隨附」PDF視圖嗎?

回答

0

我在這種情況下做的是創建一個控制器操作,該操作返回與數據庫中給定條目ID關聯的PDF。

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

接着它處理的形式POST控制器動作執行以下操作:

  1. 保存條目值到數據庫。
  2. 檢索保存的表單輸入集的主鍵。
  3. 重定向到成功視圖並將主鍵傳遞給它。

然後,成功視圖可以使用它給出的鏈接到PDF(作爲下載鏈接)或可以嵌入到iframe(yuck!)中。

請注意,這隻適用於您將值保存在數據庫中。如果不使用一個數據庫,你必須要麼:

  1. 編碼所有形式的查詢字符串中的數據(其中有一個規模有限)
  2. 存儲在會話表格數據(不推薦)

希望有幫助。

相關問題