Asp.net mvc Razor引擎电子邮件模板错误对象类型无法转换为目标

Asp.net mvc Razor引擎电子邮件模板错误对象类型无法转换为目标,asp.net-mvc,email,templates,Asp.net Mvc,Email,Templates,我想使用RazorEngine创建电子邮件,但当我的应用程序在服务器上运行时返回错误 堆栈跟踪: RazorEngine.Compilation.CrossAppDomainCleanUp.CleanCupulper.Init(AppDomain 域,IPrinter打印机)位于 RazorEngine.Compilation.CrossAppDomainCleanUp.InitHelper.CreateHelper() 在 RazorEngine.Compilation.ExecutionCo

我想使用RazorEngine创建电子邮件,但当我的应用程序在服务器上运行时返回错误

堆栈跟踪: RazorEngine.Compilation.CrossAppDomainCleanUp.CleanCupulper.Init(AppDomain 域,IPrinter打印机)位于 RazorEngine.Compilation.CrossAppDomainCleanUp.InitHelper.CreateHelper() 在 RazorEngine.Compilation.ExecutionContextLessThread.FuncConv1.Call(布尔值 数据)在 RazorEngine.Compilation.ExecutionContextLessThread.CallHelperSafeHelper2.AsAction() 在 RazorEngine.Compilation.ExecutionContextLessThread.CallHelperSafeHelper2.AsContextCallback(对象 国家)在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext、ContextCallback回调、对象状态、布尔值 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback回调、对象状态、布尔值 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback回调、对象状态)位于 RazorEngine.Compilation.ExecutionContextLessThread.DefaultCallFunc[O](Func1 f) 位于RazorEngine.Compilation.CrossAppDomainCleanUp..ctor(AppDomain toWatch,IPrinter打印机)位于 RazorEngine.Compilation.CrossAppDomainCleanUp.CreateInitial()位于 System.Lazy1.CreateValue()---来自上一个 引发异常的位置---at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()位于 System.Lazy1.getValue()位于 RazorEngine.Compilation.CrossAppDomainCleanUp.getCurrentCleanup()位于 RazorEngine.Compilation.CrossAppDomainCleanUp.RegisterCleanup(字符串 项目,布尔值(默认值)位于 RazorEngine.Templating.InvalizangCachingProvider.c.b50(字符串 项目)在 RazorEngine.Templating.InvalidingCachingProvider.CacheTemplate(ICompiledTemplate)无效 模板,ITemplateKey templateKey)位于 RazorEngine.Templating.DefaultCachingProvider.CacheTemplate(ICompiledTemplate 模板,ITemplateKey templateKey)位于 RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey 键,类型(modelType)位于 RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey 键,类型modelType,Boolean compileOnCacheMiss)位于 RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey, TextWriter编写器,类型modelType,对象模型,DynamicViewBag 查看包)在 RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey 键,TextWriter编写器,类型modelType,对象模型,DynamicViewBag 查看包)在 RazorEngine.Templating.RazorEngineServiceExtensions.cDisplayClass160.b_u0(TextWriter (作者)在 RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(操作1 与作者)在 RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService 服务、字符串名称、类型modelType、对象模型、DynamicViewBag 查看包)在project.Email.CreateEmail(列表1提供) 消息:无法将对象类型转换为目标

这是我的代码,其中是错误

private string CreateEmail(List<EmailOffer>  offers)
{
   string template=File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Views\\EmailTemplate\\Email.cshtml"));
   return Engine.Razor.RunCompile(template, "templateKey", null, offers);
}
这是模板电子邮件(cshtml文件)

@model IEnumerable
@foreach(模型中的var项目)
{
@项目.标题
}

我怎样才能解决这个问题?非常感谢。

是否需要指定要传递给RunCompile方法的模型类型

e、 g.根据本文件:


根据您提供的信息,您能得到的最佳答案是:“修复您的应用程序。这将解决您的问题”。我收到了相同的错误。不知道原因是什么。单元测试很好,有什么建议吗?我也面临同样的问题。
public class EmailOffer
{
    public string Title{ get; set; }
    public string UrlImage { get; set; }
}
@model IEnumerable<project.Models.EmailOffer>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta name="viewport" content="width=device-width" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    </head>
    <body>
        @foreach (var item in Model)
        {
            <table style="margin-bottom: 10px;margin-top: 25px;background-color: #f3f3f3;padding: 10px;">
                <tr>
                    <td style="max-width: 128px;padding-right: 10px;height: auto;min-width: 64px;width: 20%;"><img src="@item.UrlImage" style="max-width: 100%;" /></td>
                    <td>
                        <h2 style="line-height: 1.1;margin: 10px;font-weight: 500;font-size: 16px;">@item.Title</h2>
                    </td>
                </tr>
            </table>
        }
    </body>
</html>
private string CreateEmail(List<EmailOffer>  offers)
{
   string template=File.ReadAllText(Path.Combine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase, "Views\\EmailTemplate\\Email.cshtml"));
   return Engine.Razor.RunCompile(template, "templateKey", typeof(List<EmailOffer>), offers);
}
@foreach (project.Models.EmailOffer item in Model)
{
    ...
}