質問: @{ #if !DEBUG } @{ #endif } cshtmk内で上記のような記述をしたが、判定がうまくできない。 何か理由はあるのでしょうか?ご教授お願い致します。 回避策にcsで判定すればという話もあるのですが、なぜRazorで判定ができないのかが不明のため許可がおりません。
回答: 書き方の問題では? 以下のようにすれば期待通りになると思います。 ``` @{ #if !DEBUG // 有効&正しい C# のコードによる何らかの処理 #endif } ``` ただし、当たり前ですが、#if ~ #endif の間に挟むのは C# のコードにする必要があって、script タグのような html 要素そのままではダメです(当然コンパイルエラーになります)。 `Response.Write("");` という手も考えましたが、どうしても script 要素がレンダリングされる位置をコントロールする方法が見つかりませんでした。 例えば、以下のようにすると(Visual Studio のテンプレートが生成する index.cshtml の最後に追加)、 !イメージ説明 このようになってしまいます。そこのところで自分は思考停止状態です。何か良い方法を思いついたら書きますが、期待はしないでください。 !イメージ説明