2

私は MVC アプリケーションに取り組んでおり、デバッグ モードの場合にのみ JavaScript のコードを実行したいと考えています。コードをリリースするときにそのコードを実行したくありません。

つまり、javascript/jQuery の場合、C# で次のコードのようなものはありますか?

#if (DEBUG)
  // debugging code block here
#else
  // release code block here
#endif
4

3 に答える 3

5

あなたの質問で構造を使用し、ビューモデルに何かを設定して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の構文についてはよくわかりませんが、上記は良いと思います)

于 2013-07-23T22:45:48.967 に答える
4

もちろん。JavaScript版はこちら。

var DEBUG = true;

if(DEBUG) {
    // debug code
} else {
    // production code
}
于 2013-07-23T22:45:14.987 に答える
2

@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 ではなく、すべての混乱をコントローラーに配置する必要がないようにします。

于 2013-07-23T22:55:02.317 に答える