繁体   English   中英

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

[英]Debug a script that sits in a partial view

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

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

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

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

//@@ sourceURL=someValue

打开脚本标签后立即打开。 例:

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

- 编辑 -

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

//# sourceURL=_fooPartialView.cshtml

还要注意,虽然前面没有提到过,@@只是剃刀视图中源映射所必需的,因为“@”具有其他意义。

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

在用户控件中链接JavaScript库

在部分视图中包含JavaScript文件

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM