CSHTML 中 JavaScript 上的断点

breakpoint on javascript in CSHTML?

本文关键字:断点 JavaScript CSHTML      更新时间:2023-09-26

我有一个 .具有 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
}