我正在使用以下代码使用RazorEngine构建和发送电子邮件。
//build email using template.
string template = File.OpenText(EmailTemplatePath).ReadToEnd();
OrganizationInviteEmailTemplate model = new OrganizationInviteEmailTemplate()
{
FirstName = Invitation.FirstName,
LastName = Invitation.LastName,
Message = Message,
OrganizationName = Invitation.Organization.OrganizationName,
ConfirmUrl = string.Format(ConfirmUrlTemplate, Invitation.InviteCode)
};
string body = Razor.Parse(template, model);
//email the invitation.
MailMessage message = new MailMessage();
message.To.Add(Invitation.Email);
message.Subject = "Invitation From " + Invitation.Organization.OrganizationName;
message.Body = body;
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient();
client.Send(message);
模板如下:
<html>
<head>
</head>
<body>
<h3>@Model.OrganizationName has invited you to be part of their organization</h3>
<p>
Hi @Model.FirstName,
</p>
.....etc......
</body>
</html>
我得到“无法编译模板”错误9次中有10次,然后通过删除模型和/或调整代码使用解析,但它会回到不工作状态。这就像是简单地缓存一段代码或其他东西。
我正在使用RazorJS附带的RazorEngine.dll,版本2.1.4113.149。也许这就是问题所在。接下来要尝试this library或Postal,因为这已经花费了太多时间。或者只是硬编码该死的东西。