私は MVC アプリケーションに取り組んでおり、デバッグ モードの場合にのみ JavaScript のコードを実行したいと考えています。コードをリリースするときにそのコードを実行したくありません。
つまり、javascript/jQuery の場合、C# で次のコードのようなものはありますか?
#if (DEBUG)
// debugging code block here
#else
// release code block here
#endif
私は MVC アプリケーションに取り組んでおり、デバッグ モードの場合にのみ JavaScript のコードを実行したいと考えています。コードをリリースするときにそのコードを実行したくありません。
つまり、javascript/jQuery の場合、C# で次のコードのようなものはありますか?
#if (DEBUG)
// debugging code block here
#else
// release code block here
#endif
あなたの質問で構造を使用し、ビューモデルに何かを設定してJavaScriptを含める/除外することをお勧めします。
public ActionResult XXX()
{
var vm=new MyViewModel(); //or just use ViewBag/ViewData
#if (DEBUG)
vm.RunJS=true;
#else
vm.RunJS=false;
#endif
return View(vm);
}
それからあなたの見解では
@if(Model.RunJS)
{
<script ...></script>
}
または、同様の構成を使用して、DEBUG ステータスを JavaScript に渡します。
<script type="text/javascript">
startMyJavascript(@Model.IsDebug?"true":"false");
</script>
(Razorの構文についてはよくわかりませんが、上記は良いと思います)
もちろん。JavaScript版はこちら。
var DEBUG = true;
if(DEBUG) {
// debug code
} else {
// production code
}
@Html.Raw() と共に ViewBag をいつでも使用できます。私は時々これを行いますが、うまくいきます。
コントローラ:
#if DEBUG
ViewBag.JavaScript = "String representation of JS code";
#endif
return View();
意見:
@Html.Raw(ViewBag.JavaScript)
次のようなインクルードを使用することもお勧めします
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
生の JavaScript ではなく、すべての混乱をコントローラーに配置する必要がないようにします。