RazorEngine“无法编译模板”错误

时间:2011-04-22 14:35:06

标签: c# .net razor razorengine

我正在使用以下代码使用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 libraryPostal,因为这已经花费了太多时间。或者只是硬编码该死的东西。

2 个答案:

答案 0 :(得分:-1)

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

答案 1 :(得分:-1)

您是否错过了模板顶部的@model声明?