2013-11-21 29 views
1

我知道我在這裏要求提供信息,但似乎是一個相關的問題,我沒有想法如何做到這一點。請幫忙。MVC4:保存爲HTML併發送電子郵件

問題:我們有要求發送帶有html附件的電子郵件。

發送電子郵件部分作爲我們的APT的一部分照顧,但問題是與HTML附件。

要求:我們必須將用戶界面上顯示的當前視圖作爲html文件發送。

如何從視圖中獲取控制器中的完整html?

Attachment = new AttachmentContract 
      { 
       Path = AppSettings.NoticeAttachmentFilePath, 
       FileName = "filenamehtml", 
       Content = <<here we want to set that html>> 
      } 
+0

或許整合RazorEngine可以幫助你:http://www.nuget.org/packages/RazorEngine – Silvermind

回答

0

發現瞭解決方案傢伙與這裏的一些其他問題的幫助就是我正在做

Attachment = new AttachmentContract 
     { 
      Path = AppSettings.NoticeAttachmentFilePath, 
      FileName = "filenamehtml", 
      Content = testmethod() 
     } 

private string TestMethod(ModelData modelData) 
    { 

     ViewData.Model = modelData; 
     StringWriter output; 
     using (output = new StringWriter()) 
     { 
      var result = ViewEngines.Engines.FindView(this.ControllerContext, "EmailAttachment", null); 
      var viewContext = new ViewContext(this.ControllerContext, result.View, this.ViewData, this.ControllerContext.Controller.TempData, output); 
      result.View.Render(viewContext, output); 
      result.ViewEngine.ReleaseView(this.ControllerContext, result.View); 
     } 

     return output.ToString(); 
    } 

Where EmailAttachment is a view i am going to fill in my logic using the same model 
0

你可以嘗試使用這樣的事情:

https://github.com/smsohan/MvcMailer

+0

我們已經有用於發送電子郵件的API。所以當時只是尋找一種MVC的方式來獲取當前視圖爲控制器中的html,所以我們可以像上面提到的那樣設置內容 – fireholster