2013-11-21 1 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

Смежные вопросы