我正在使用MVC和jquery从服务器中提取一个函数(作为我动态生成的部分视图并附加到html的主体)并执行它。这工作正常,我可以在提琴手中查看它,但调试很糟糕。我使用类似的东西来拉入方法:
$("#makeGrid").click(function (e) {
$.get('/gridder/basicgrid', callbackFn);
function callbackFn(data) {
//Append markup to dom
$('body').append(data);
// call the js function from the partialview here
generateGrid();
}
});
这是否是最佳实践我不确定,但如果我在ajax命令后查看源代码,则代码不可见,并使用调试器;命令似乎不起作用。例如:
function generateGrid() {
alert("start");
debugger;
alert("end");
}
创建两个警报,但即使firebug处于活动状态,也不会调出调试器。这discussion提出了类似的问题。有些人通过使用调试器两次解决这个问题(这个错误现在已经消失)或者在新窗口中打开firebug(没有运气)。甚至eval('debugger;');有人在另一个帖子中提出但没有好处!
有什么建议吗? (如果需要,包括使用firebug以外的工具,但我想调试,而不是查看fiddler风格)
答案 0 :(得分:0)
这个看起来不是一个确凿的答案。对于其他人的参考,我最终在VS2010本身进行调试,如下所示:
a)必须使用IE作为VS默认浏览器。 Firefox不喜欢玩。如果您正在使用MVC,则默认浏览器选择器不会像在webforms中那样出现视图等。一个快速的解决方案是在根目录中创建一个空的.html页面,然后右键单击该混蛋以“浏览...”并选择所需的默认浏览器。多田。
b)接下来,在IE的高级选项中,确保取消勾选“禁用javascript调试”选项。
c)现在,您可以使用调试器;在视图中的脚本中命令,以中断动态生成的脚本的执行。它将返回VS并突出显示该行。因为它生成了它在顶部说[动态脚本]。断点似乎仍然没有令人烦恼。
d)在IE中,js错误也会在控制台中报告。它会为您提供行号和列,突出显示您的文件。如果您已发送动态局部视图,则会在原始页面文件中突出显示这些坐标,这是不适用的。而是转到VS的“script block [dynamic]”选项卡中的等效坐标。
事实上,对于MVC开发而言,这可能比Firebug提供的更有用。
干杯