使用 AspNet Razor 发送从模板构建的电子邮件

Using AspNet Razor to send emails built from templates

我正在尝试创建一种方法来编译 Razor 视图(我正在使用 Asp Net 5)并将其转换为可以作为电子邮件正文发送的字符串。到目前为止我所拥有的是:

             MailMessage mailmessage  = new MailMessage("email@test.com",email);

        var parser = new RazorParser(new CSharpCodeParser(),
            new HtmlMarkupParser(),
            null);
        var result = parser.Parse(new StringReader("<p>Hello world. The time is @DateTime.UtcNow</p>"));

        mailmessage.Body = ""; // What to put here?

        mailmessage.IsBodyHtml = true;
        SmtpClient smtp = new SmtpClient("smtp.test.com");
        smtp.Port = 587;
        smtp.Credentials = // Removed
        smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
        return smtp.SendMailAsync(mailmessage);

我不知道我需要做什么才能将 ParserResult 转换为可用于电子邮件正文的内容,我一直在研究 AspNet 源代码,但还没有成功,有人知道吗这该怎么做?

使用此方法以字符串形式从当前控制器获取视图的内容:

private string getViewContents(string viewName, object model)
{
  var writer = new StringWriter();

  ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
  var data = new ViewDataDictionary();
  data.Model = model;

  var viewContext = new ViewContext(ControllerContext, viewResult.View, data, new TempDataDictionary(), writer);
  viewResult.View.Render(viewContext, writer);

  return writer.GetStringBuilder().ToString();
}