0

我正在使用以下代码使用 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。也许这就是问题所在。接下来要尝试这个图书馆邮政,因为这已经花费了太多时间。或者只是硬编码该死的东西。

4

2 回答 2

-1

除非您想自己编写所有代码,否则安装像MvcMailer这样的 nuget 包会更容易。

于 2011-04-22T15:01:58.827 回答
-1

你没有错过模板顶部的@model 声明吗?

于 2011-08-16T22:08:33.997 回答