javascript代码调试

Debug for javascript code

本文关键字:调试 代码 javascript      更新时间:2023-09-26

我正在开发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
}

您可以随时将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,以避免将所有这些混乱都放在控制器中。