CSHTML javascript 上的断点?

breakpoint on javascript in CSHTML?

我有一个带有 javascript 标签的 .CSHTML 文件。 在这个脚本标签中,我有几行 javascript。 第一行javascript引用@ViewBag中的一个属性。 所有其他 javascript 行都是没有任何 MVC 相关引用的纯脚本。

观察: 我可以在这些 javascript 行的每一行上放置断点 (visual studio 2015)。 但是,所有断点在断点符号(红色圆圈)的中心都有白点,除了带有 @ViewBag 引用的行(此特定行在中心没有白点)。

在运行时间里好像只有没有白点的断点被击中了。

问题: 有人可以解释这里发生了什么吗? 白点是什么意思? 为什么纯红色断点线是唯一命中断点的线?

Visual Studio 调试器实际上希望您调试 .cshtml 文件中的实际服务器端代码,而不是其中的客户端 Javascript。

IIRC,Visual Studio 将允许您在 Internet Explorer(可能还有 Edge)中调试 Javascript 代码,但对于其他浏览器,您可能希望使用第三方工具或浏览器中的开发人员工具 (F12)。

一种简单的方法是利用 Javascript 的 debugger 关键字,您可以将其放入您的代码中,并且 运行 打开开发者工具(只需按 F12然后刷新您的页面)。它将遇到一个断点,浏览器将允许您按预期单步执行代码:

function doWork(){
    // Ensure that this line is hit with the Developer Tools open in your 
    // browser
    debugger;
    // Do work here
}