调试位于局部视图中的脚本

时间:2011-08-01 16:06:58

标签: javascript asp.net-mvc-3

为什么我无法调试驻留在部分视图中的脚本,这些脚本是在运行时创建的? 要查看脚本列表中的脚本(例如在Chrome中)并对其进行调试,我必须将其移至上一级的“常规”视图,或者我必须将其移动到单独的.js文件中。 但是,如果脚本如此之小以至于我不想将其移动到任何地方,并且仍然希望能够进行调试呢?

3 个答案:

答案 0 :(得分:22)

如果未通过ajax加载局部视图(视图在初始页面渲染时就位),则可以使用“调试器”。如果要运行的代码被添加到dom中IE将无法知道您要调试的实际代码的位置。所以:

// javascript
var foo = 2;
debugger;
// more javascript

答案 1 :(得分:14)

现在有更好的方法,只需使用语法

//@@ sourceURL=someValue
打开脚本标签后立即

。例如:

<script type="text/javascript">
    //@@ sourceURL=_fooPartialView.cshtml
    function foo() {}
</script>

- 编辑 -

显然由于某些IE兼容性问题,javascript源映射已从上面更改为:

//# sourceURL=_fooPartialView.cshtml

另请注意,尽管之前未提及,但@@仅对剃刀视图中的源映射是必需的,因为“@”具有其他意义。

答案 2 :(得分:5)

在部分视图中包含脚本通常被认为是不好的做法。您可能会遇到多个脚本引用和性能的各种问题。这里更好的方法是确保脚本移动到head标签中的占位符。有关此的一些示例,请查看:

Linking JavaScript Libraries in User Controls

Include JavaScript file in partial views

如果你坚持从部分加载脚本,那么上面的'调试器'方法非常有效。