代码之家  ›  专栏  ›  技术社区  ›  raynjamin

剃刀安全检查InvalidExpressionTerm

  •  2
  • raynjamin  · 技术社区  · 10 年前

    我正在尝试在web应用程序中渲染Razor视图。它在这条线上失败得很惨:

    if (Model?.Items == null)
    {
        return;
    }
    

    由于Safe Navigation运算符,它抛出InvalidExpressionException。我的同事没有遇到这个错误,我已经确认我的bin目录中所有版本的MVC和Razor dll都是相同的。

    谢谢 本

    1 回复  |  直到 10 年前
        1
  •  0
  •   raynjamin    10 年前

    对于记录,这是Web.config中省略此条目(或类似条目)时出现的错误。在我的例子中,有一个巨大的任务改变了目标Web。config并添加了此条目。一旦我运行了它,一切都正常了。

    <compilers>
      <compiler language="c#;cs;csharp" extension=".cs"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701"/>
      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"
        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
        warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>
    </compilers>