Last active
August 26, 2018 18:54
-
-
Save dalion619/9dc5b973fcf0b3c3249181b05a54b26e to your computer and use it in GitHub Desktop.
RazorEngine Render Email Template From Razor View
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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