调试javascript代码

时间:2013-07-23 22:43:34

标签: c# javascript jquery asp.net-mvc

我正在开发一个MVC应用程序,并希望JavaScript中的一些代码只有在我处于调试模式时才能运行。我发布代码时不希望代码运行。

换句话说,对于javascript / jQuery,C#中是否有类似下面的代码?

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

3 个答案:

答案 0 :(得分:5)

我建议您在问题中使用该构造,并在viewmodel中设置一些内容以包含/排除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语法不太确定,但我认为以上是好的)

答案 1 :(得分:4)

不确定。这是JavaScript版本。

var DEBUG = true;

if(DEBUG) {
    // debug code
} else {
    // production code
}

答案 2 :(得分:2)

您始终可以将ViewBag与@ Html.Raw()一起使用。我偶尔这样做,效果很好。

控制器:

#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,以避免将所有这些混乱放在你的控制器中。