我有一封确认电子邮件模板.cshtml
,如下所示:
<html>
<head>
<title>company name: Email Verification - Action Required</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
Thanks for signing up for company name!
<br/>
<br/>
Thank you for signing up to company name. Please press the link below to confirm your email address <br/>
If you did not sign up for company name, please ignore this email, and accept our apologies for the inconvenience.
<br/>
<br/>
<a href="@Model.ConfirmLink">@Model.ConfirmLink</a>
<br/>
<br/>
<br/>
Thanks,<br/>
The <a href="http://company name.com" >company name</a> Team
</table>
</body>
</html>
我是否有机制设置数据(@Model.ConfirmLink
)并将结果作为string
取回? (不是手动替换字符串)
答案 0 :(得分:1)
您可以使用RazorEngine,它使用与Razor相同的语法,但是您可以在不需要ASP.NET MVC的情况下呈现文本。
您的代码如何运作:
string template = yourHtmlCodeAsString;
string result = Razor.Parse(template, new { ConfirmLink = "http://.../" });
您可以从文件,资源等加载该模板字符串
答案 1 :(得分:0)
是的,您可以将Razor用作电子邮件的模板引擎。
我使用这门课。
public static class EmailFactory
{
public static string ParseTemplate<T>(T model, string templatesPath, EmailType emailType)
{
string templatePath = Path.Combine(templatesPath, string.Format("{0}.cshtml", emailType));
string content = templatePath.ReadTemplateContent();
return Razor.Parse(content, model);
}
}
templatesPath
- 是我的电子邮件cshtml视图的路径。EmailType
是枚举,其元素与templatesPath目录中的视图namse相同。本质是Razor.Parse(content, model);
它需要一个有效的剃刀视图和模型的字符串并将它们合并在一起。与ASP MVC中的视图相同。