Skip to content

Instantly share code, notes, and snippets.

@dalion619
Last active August 26, 2018 18:54
Show Gist options
  • Save dalion619/9dc5b973fcf0b3c3249181b05a54b26e to your computer and use it in GitHub Desktop.
Save dalion619/9dc5b973fcf0b3c3249181b05a54b26e to your computer and use it in GitHub Desktop.
RazorEngine Render Email Template From Razor View
var welcomeEmailTemplateModel = new WelcomeEmailTemplate();
var emailHtmlBody = await EmailTemplateHelper.RenderEmailTemplate<WelcomeEmailTemplate>(welcomeEmailTemplateModel);
/// <summary>
/// Renders HTML from email template view model passed in.
/// </summary>
/// <typeparam name="TEmailTemplate">The element type of the email template view model.</typeparam>
/// <param name="model">Email template view model.</param>
/// <returns>String of HTML.</returns>
public static async Task<string> RenderEmailTemplate<TEmailTemplate>(TEmailTemplate model) where TEmailTemplate : IEmailTemplateBase
{
try
{
// Get RazorEngineService
var razorEngineService = AppConfiguration.RazorEngineService;
// Get email template type of generic model.
var templateType = model.GetType();
// Render HTML from view and model.
var html = razorEngineService.RunCompile($"{templateType.Name}",templateType, model);
return html;
}
catch (Exception e)
{
return null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment