CSHTML中的javascript断点?

时间:2016-04-20 20:32:29

标签: javascript asp.net-mvc visual-studio-2015 breakpoints

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

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

似乎只有没有白点的断点才会在运行时被点击。

问题: 有人能解释一下这里发生了什么吗? 白点是什么意思? 为什么普通红色断点线是击中断点的唯一线?

2 个答案:

答案 0 :(得分:11)

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
}

答案 1 :(得分:0)

运行Web应用程序后,解决方案资源管理器将显示一组新文件,它们是动态脚本对象。通常,您可以在其中找到JS代码并在运行后创建断点:

enter image description here

如果我单击“空白”,它将显示cshtml页面的动态加载版本,并且我可以添加断点。