次のコードを使用して、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 回発生し、モデルを削除してテンプレートを調整すると、1 回は機能します。および/または代わりにParseを使用するようにコードを調整しますが、すぐに機能しなくなります。何かがコードの一部を一時的にキャッシュしているようなものです。
RazorJSバージョン 2.1.4113.149に含まれている RazorEngine.dll を使用しています。多分それが問題です。これにはすでに時間がかかりすぎているため、次にこのライブラリまたは郵便を試します。または、いまいましいことをハードコーディングするだけです。