剃刀引擎模板解析错误 - 表达式编译太长或太复杂

时间:2015-04-16 19:59:13

标签: c# html asp.net razor

在尝试解析简单的HTML页面时,我们得到Expression太长或复杂的错误。 以下是错误:

  

System.Reflection.TargetInvocationException:抛出了异常   通过调用的目标。 --->   RazorEngine.Templating.TemplateCompilationException:无法编译   模板。表达式太长或太复杂而无法编译

     

可能发生了其他编译​​错误。检查Errors属性   欲获得更多信息。在   RazorEngine.Compilation.DirectCompilerServiceBase.CompileType(TypeContext   上下文)   C:_git \ RazorEngine \ SRC \核心\ RazorEngine.Core \编译\ DirectCompilerServiceBase.cs:线   100点   RazorEngine.Templating.TemplateService.CreateTemplateType(字符串   razorTemplate,TypeTypeType)in   C:_git \ RazorEngine \ SRC \核心\ RazorEngine.Core \模板\ TemplateService.cs:线   256在RazorEngine.Templating.TemplateService.CreateTemplate(String   razorTemplate,Type templateType,Object model)in   C:_git \ RazorEngine \ SRC \核心\ RazorEngine.Core \模板\ TemplateService.cs:线   127 at RazorEngine.Templating.TemplateService.Parse(String   razorTemplate,对象模型,DynamicViewBag viewBag,String cacheName)   在   C:_git \ RazorEngine \ SRC \核心\ RazorEngine.Core \模板\ TemplateService.cs:线   435 at RazorEngine.Razor.Parse [T](String razorTemplate,T model)in   c:_git \ RazorEngine \ src \ Core \ RazorEngine.Core \ Razor.cs:第263行

1 个答案:

答案 0 :(得分:0)

首先使用Razor.Compile然后使用Razor.Run解决了这个问题。当你使用Razor.Parse时,它将创建一个dll文件,永远不会丢弃它。我们在服务器上进行了压力测试,最终得到了数百万个由Razor在Temp文件夹中创建的未知dll文件。首先使用Compile,您只创建一个dll文件。 Razor.Run将只使用编译模板和Parse模板。