【问题标题】:RazorEngine "Unable to compile template" ErrorRazorEngine“无法编译模板”错误
【发布时间】:2011-04-22 14:35:05
【问题描述】:

我正在使用以下代码使用 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 次出现“无法编译模板”错误,然后在我通过删除 Model. 调整模板和/或调整代码以使用 解析,但它会马上回到不工作。就好像某事正在短暂缓存一段代码之类的。

我正在使用 RazorJS 中包含的 RazorEngine.dll,版本 2.1.4113.149。也许这就是问题所在。接下来要尝试this libraryPostal,因为这已经花费了太多时间。或者只是硬编码该死的东西。

【问题讨论】:

  • 看看 RazorEngine 关于 codeplex 的讨论:razorengine.codeplex.com/discussions/248593
  • 澄清一下,您的模板是否正确构建?意味着所有html标签在适当的时候都有结束标签吗?这里的帖子没有显示结束 &lt;h3&gt; 标记,因此可能会导致它失败 - 没关系有人奇怪地编辑了你的帖子
  • 我创建了一个快速的OrganizationInviteEmailTemplate 模型,填充它并用你的剪断运行它,它运行良好。将您的模型副本和完整模板通过电子邮件发送给 ben@this name.com,我将能够查看并查看错误可能出在哪里。
  • 感谢您的关注。它必须与其他程序集有关,或者它在 IIS 中执行。我认为我们不会解决这个问题,所以只需对其进行硬编码并使用 string.Format。我已经花了太多时间试图让它发挥作用。
  • 仅供参考,我在离开时删除了 RazorJS 和问题。我的猜测是 RazorJS 正在重新配置一些全局变量并导致问题。

标签: c# .net razor razorengine


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-31
      • 2013-03-26
      • 2013-12-09
      • 1970-01-01
      • 2011-08-26
      相关资源
      最近更新 更多