2012-03-01 75 views
2

我的web.config文件中包含此@ {#如果DEBUG}不工作

<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} 

問題是,@ {#如果DEBUG }分支被執行。如果我將該分支更改爲@ {#if!DEBUG},則會執行else分支。爲什麼是這樣?

謝謝。

薩欽

回答

3

在Web.config debug=""屬性不影響處理器符號。

您可以檢查該屬性直接像這樣:

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

(你應該把這個在一個靜態屬性中的任何一類,然後檢查該屬性在正常if語句)

+0

在那裏我會把這個,然後如何在我的_Layout.cshtml文件中調用它? @ {#if if DEBUG}然後檢查什麼? – 2012-03-01 17:35:52

+0

'#if'檢查定義的預處理器符號。我不確定在哪裏定義這些。 – SLaks 2012-03-01 17:37:04

+0

但是我在哪裏放了你寫的代碼? – 2012-03-01 17:39:46