RazorEngine «Невозможно скомпилировать шаблон» Ошибка - PullRequest
0 голосов
/ 22 апреля 2011

Я использую следующий код для создания и отправки электронного письма с помощью 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, и затем она будет работать один раз после того, как я настрою шаблон, удалив Model. и / или настроив код для использования Parse вместо этого, но затем он пойдетВернемся к не работает.Как будто что-то кеширует кусок кода кратко или что-то в этом роде.

Я использую RazorEngine.dll, включенный в RazorJS , версия 2.1.4113.149.Может быть, это проблема.Попробуем эту библиотеку или Почтовый дальше, так как это занимает слишком много времени.Или просто жестко закодировать эту чертову штуку.

Ответы [ 2 ]

0 голосов
/ 17 августа 2011

Разве вы не пропустили объявление @model в верхней части шаблона?

0 голосов
/ 22 апреля 2011

Если вы не хотите кодировать все это самостоятельно, вам будет проще установить пакет nuget, например MvcMailer .

...