2016-04-20 38 views
5

我有一个JavaScript标记的.CSHTML文件。 在此脚本标记中,我有几行javascript。 JavaScript的第一行指的是@ViewBag中的一个属性。 所有其他javascript行都是纯脚本,没有任何MVC相关参考。CSHTML中的JavaScript断点?

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

似乎只有没有白点的断点在运行时被命中。

问题: 有人可以解释这里发生了什么吗? 白点代表什么意思? 为什么简单的红色断点行是唯一击中断点的行?

+0

的JavaScript代码是客户端的代码,你可以调试与浏览器的开发工具和白色圆圈的代码意味着,在调试模式debuger除了线 – Damirchi

回答

6

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 
}