C# Fluent电子邮件错误无法编译模板

C# Fluent电子邮件错误无法编译模板,c#,email,asp.net-mvc-4,.net-4.5,C#,Email,Asp.net Mvc 4,.net 4.5,我正在将我的mvc 3.0项目更新为.NET4.0和MVC4.0,发现Fluent电子邮件停止工作。 我试着使用最新版本和预发布版本 email = Email .From(model.FromEmail, model.Username) .To(betsTipsterEmail) .Subject(emailSubject)

我正在将我的mvc 3.0项目更新为.NET4.0和MVC4.0,发现Fluent电子邮件停止工作。 我试着使用最新版本和预发布版本

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
但是获取错误
无法编译模板

An exception of type 'RazorEngine.Templating.TemplateCompilationException' occurred in RazorEngine.dll but was not handled in user code

Additional information: Unable to compile template. Source file 'C:\Windows\TEMP\xrhyjmc5.0.cs' could not be found
                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
也许有人知道如何解决这个问题

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
我的电话号码:

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
我的
Confirmation.html
模板:

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
<html>
    <body>
        <p>
            Hi @Model.Username,

            bla<br /><br />
            bla<br /><br />
            <a href="@Model.Url">@Model.Url</a><br /><br />
            bla
        </p>
        <p>
            Kind Regards,<br /><br />
            bla
        </p>
    </body>
</html> 


您好@Model.Username,
bla

bla



布拉

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
亲切的问候,

布拉

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
RazorEngine版本3.2.0
我一直在看这篇文章,但没有帮上忙。我遇到过类似的问题。尝试用大括号包装每个
@Model
调用。例如,
@(Model.Username)
。1.3.0的最新稳定版本刚刚发布,您也应该进行更新。

对于.Net Core中存在此问题的用户。
                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
我使用EmbeddedResources作为电子邮件模板,并使用DI添加razor render,如下所示:
services.AddRazorRenderer()
检查FluentEMail Razor和RazorLight doc的单元测试后 我想我应该将
typeof(rootType)
传递给
services.AddRazorRenderer(typeof(rootType))
,这样我的代码才能正常工作,如果不这样做,RazorLight就找不到TemplateKey

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
下面的示例来自FluentEmail Razor测试,展示了如何添加RazorRender:

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
public void应该能够与viewbag()一起使用项目布局
{
var projectRoot=Directory.GetCurrentDirectory();
Email.DefaultRenderer=新的RazorRenderer(projectRoot);
字符串模板=@“
@{
Layout=”“./Shared/_Layout.cshtml”“;
}
sup@Model.Name这里是一个列表@foreach(Model.number中的变量i){@i}”;
动态视图包=新的ExpandooObject();
viewBag.Title=“你好!”;
var电子邮件=新电子邮件(来自电子邮件)
.收件人(电子邮件)
.主题(主题)
.UsingTemplate(模板,新ViewModelWithViewBag{Name=“LUKE”,number=new[]{“1”、“2”、“3”},ViewBag=ViewBag});
Assert.AreEqual($“Hello!{Environment.NewLine}{Environment.NewLine}sup LUKE这里是一个列表123”,email.Data.Body);
}
FluentEmail提供了3种添加RazorRenderer的方法,您可以查看,选择正确的方法

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);
如果您有相同的问题,请参考和

                    email = Email
                    .From(model.FromEmail, model.Username)
                    .To(betsTipsterEmail)
                    .Subject(emailSubject)
                    .UsingTemplateFromFile(emailBodyFile, model)
                    .Body(model.Body)
                    .UsingClient(client);