【问题标题】:Breakpoints not being hit in asp.net MVC Javascript Event在 asp.net MVC Javascript 事件中没有命中断点
【发布时间】:2012-11-06 21:19:14
【问题描述】:

这似乎是关于 SO 的一个常见问题,我已经尝试了所有建议的解决方案,但效果不佳。

我的问题是,在我的 asp.net mvc 网站(在 VS2012 中)中,断点“是”在我的所有控制器代码中被击中,但它们“不是”在 aspx 页面中的实际 javascript 代码中被击中。 javascript 中的断点显示旧的“此断点不会被命中。符号尚未加载”。

我检查了所有 pdb 文件,它们都在那里,模块窗口显示符号已加载。

任何想法为什么实际的标记断点不会被命中?

谢谢

【问题讨论】:

标签: asp.net asp.net-mvc visual-studio debugging visual-studio-2012


【解决方案1】:

只有在使用 Internet Explorer 进行调试时才会触发 Javascript 中的断点,其他浏览器不起作用。 (无论如何我都试过 Chrome + Firefox,不确定其他的)。

【讨论】:

  • 对于 VS2015 和 ASP.NET MVC-6 RC 尤其如此。默认设置浏览器是边缘,调试器不会停止。一旦我将 VS2015 中的默认浏览器更改为 IE,调试器就会立即停止并显示错误消息。所以感谢这个提示。注意:我的 Java 代码直接在 .cshml 文件中。
  • 我可以在 Firefox 中点击它们,只是在 asp.net mvc 4 部分视图中使用它们时遇到问题...
  • 自 VS2017 起,这不再适用:blogs.msdn.microsoft.com/webdev/2016/11/21/…
【解决方案2】:

经过大量的战斗和研究,没有找到正确的答案,我发现了问题。由于我正在使用 RAZOR 编写 CSHTML 文件,因此在其中编写 javascript 似乎是一个问题。我不得不从文件中提取我所有的 javascript 并将它们放入一个 .js 文件中。我从这样的脚本声明中将这些文件加载​​到 cshtml 文件的顶部

<script src="~/Scripts/Users/Users.js"></script>
...<body></body>...

现在我的断点被击中...这是我的答案,它奏效了。让我知道它是否适合您,如果适合,请批准此答案,以便其他人可以解决此问题。

【讨论】:

  • 这有助于使 TypeScript 断点在 Visual Studio 2013 下的 ASP.Net MVC 解决方案中工作。谢谢。 :)
  • 这实际上不应该是必要的,我已经让它工作了一整天,突然它不再发生了。也就是说,无论如何,只允许缓存和缩小 .js 文件可能是一种好习惯
  • 这不应该是必要的,但就像你说的,有一天它开始发生在我身上,这就是解决方案。它确实会强制您将编码分解为单独的文件,这是一种很好的做法。
  • 同样的问题。 -- JS文件中的断点也不会被击中。
  • @BrainSlugs83 它应该。您需要确保 js 是其自身的文件。 (.js)。如果它没有加载断点,那是因为它被缓存了。 CTRL+F5吧。
【解决方案3】:

您是否尝试过在 javascript 代码中添加“调试器”命令?不过我知道这通常是不受欢迎的。

例如:

 $(document).ready(function() {

         ....
         debugger;
         ....

});

您也可以尝试在 IE 中启用 javascript 调试,方法是取消选中 IE => 选项 => 高级中的 禁用脚本调试

参考:

【讨论】:

  • 这似乎没有任何效果。
  • 这对我有用。无论是否皱眉,我一直在努力让断点在 VS2019 MVC5 .js 文件中工作,该文件是从部分视图中的脚本声明加载的,而这个解决方案刚刚奏效。谢谢!
猜你喜欢
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
  • 2012-03-24
  • 1970-01-01
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多