为什么我无法调试驻留在部分视图中的脚本,这些脚本是在运行时创建的? 要查看脚本列表中的脚本(例如在Chrome中)并对其进行调试,我必须将其移至上一级的“常规”视图,或者我必须将其移动到单独的.js文件中。 但是,如果脚本如此之小以至于我不想将其移动到任何地方,并且仍然希望能够进行调试呢?
答案 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
如果你坚持从部分加载脚本,那么上面的'调试器'方法非常有效。