2018年05月23日
川俣晶の縁側ソフトウェア技術雑記 total 3938 count

Razorでデバッグビルドの時だけページに追加したい

Written By: 川俣 晶連絡先

問題 §

#if DEBUGに相当する機能がRazorに見当たらない

原因 §

そもそも無いらしい

解決 §

擬似的な解決方法を取るしかない。

具体的には、ページに@ifを埋め込んで対応する。

方法1 §

 C#側のソースコードに#if DEBUGを埋め込み、特定の値がデバッグビルドで変化するようにする。その値をRazor側の@ifで参照し、処理を分ける。

方法2 §

 HttpContext.Current.IsDebuggingEnabledの値を使う。この価はWeb.configの<compilation debug="true">の設定を反映するものだが、通常はデバッグビルドか否かの情報が得られると考えて良い。以下のように記述して使用する。

@if (HttpContext.Current.IsDebuggingEnabled)

{

デバッグビルドジに追加する内容

}

方法1と方法2の使い分け §

  • MSも認める方法は方法2である
  • 旧バージョンの記述がどんどん削られているダメダメなdocs.microsoft.comには4.5より前のサポートの記述がないので、バージョンが古いと使えないように思えるが別のページには1.1以降でサポートと記述されているのでどのバージョンでもだいだい大丈夫だろうと思われる
  • ただし、compilation要素のdebug属性の値を何らかの理由でいじっている場合は方法2は使えない。方法1を使わねばならない