我正在使用以下代码使用 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>
我在 10 次中出现 9 次“无法编译模板”错误,然后在我通过删除模型调整模板后它会工作一次。和/或调整代码以使用Parse代替,但随后它将立即恢复为不工作。这就像某事正在短暂地缓存一段代码或某事。
我正在使用 RazorJS 中包含的RazorEngine.dll,版本 2.1.4113.149。也许这就是问题所在。接下来要尝试这个图书馆或邮政,因为这已经花费了太多时间。或者只是硬编码该死的东西。