我的web.config文件包含以下内容

<compilation debug="false" targetFramework="4.0">
   <assemblies>
      // some assemblies
   </assemblies>
</compilation>

在我的Layout.cshtml文件中
@{#if DEBUG}
  // include all css and js files
@{#else}
  // include the minified and combined versions of the css and js files
@{#endif}

问题是,@{if DEBUG}分支被执行。如果我把那根树枝改成@{If!DEBUG}然后执行else分支。这是为什么?
谢谢。
萨钦

最佳答案

Web.configdebug=""属性不影响预处理器符号。
您可以直接这样检查该属性:

var compilation = WebConfigurationManager.GetSection("system.web/compilation") as CompilationSection;
return compilation != null && compilation.Debug;

(您应该将它放在任何类的静态属性中,然后在normalif语句中检查该属性)

10-04 16:41