如何使用 RazorEngine 从模板发送电子邮件

Eit*_*n K 5 asp.net-mvc html-email razor razorengine

我正在尝试使用.cshtml模板通过 RazorEngine 发送电子邮件。他们网站上的文档展示了如何将它与包含 razor 语法的字符串一起使用。我将如何通过加载.cshtml文件来使用它?

这就是我所拥有的

    string templatePath = "~/Templates/InitialApplicationBody.cshtml";
    var result = Engine.Razor.RunCompile(templatePath, "templateKey", null, viewModel);
Run Code Online (Sandbox Code Playgroud)

小智 4

通过 MVC 控制器,可以轻松地从 Razor 视图(CSHTML 文件)生成 HTML。

我已成功使用接受的答案中的代码将视图渲染为字符串,并将其放入基本控制器中。

// Renders a Razor view, returning the HTML as a string
protected string RenderRazorViewToString<T>(string viewName, T model) where T : class
{
    ViewData.Model = model;

    using (var sw = new StringWriter())
    {
      var viewResult = ViewEngines.Engines.FindPartialView(ControllerContext,
                                                           viewName);

      var viewContext = new ViewContext(ControllerContext, viewResult.View,
                                        ViewData, TempData, sw);

      viewResult.View.Render(viewContext, sw);
      viewResult.ViewEngine.ReleaseView(ControllerContext, viewResult.View);

      return sw.GetStringBuilder().ToString();
   }
}
Run Code Online (Sandbox Code Playgroud)