2011-02-07 255 views
1

我有一個控制器操作,可以生成PDF並將其傳輸到客戶端,但也希望有一個控制器操作,將該PDF下載操作的輸出作爲附件發送。我知道如何發送電子郵件,問題是我如何使用/捕獲MVC下載動作來處理我的電子郵件附件。ASP.NET MVC發送電子郵件附件

僞代碼:

public PdfResult Download(int? someId) 
{ 
    var pdfBuilder = new pdfBuilder(); 
    var pdfStream = pdfBuilder.StreamPdf(someId); 
    return new PdfResult("someId.pdf", "application/pdf", pdfStream); 
} 

public ActionResult Email(int? someId) 
{ 
    var pdfStream = View("Download", someId); 
    var attachment = new Attachment(pdfStream, "someId.pdf"); 

    //...send email code 
} 
+1

如果你已經擁有了你的`PdfBuilder`,你爲什麼不在發送郵件時再打電話......?如果你不想複製代碼,只需將pdf生成代碼重構爲第三種方法即可。 – rsenna 2011-02-07 18:26:19

+0

你用什麼發送電子郵件,需要什麼附件。那是需要物理文件還是文件流? – 2011-02-07 18:48:49

回答

1

你可以嘗試添加一個輔助類返回,而不是在你的郵箱()方法調用下載()的PdfResult。