2009-10-26 25 views
35

我刚刚安装了VS 2010 Beta 2,并希望使用ASP.NET MVC 2项目。我只是在主控制器的index.aspx视图中添加了一些脚本(alert('hello');),我可以看到它正在执行。但是,当我尝试设置断点时,它永远不会被击中。我也尝试使用“调试器”关键字,当我这样做时,我得到一个令人失望的“没有可用于当前位置的源代码”消息。当我尝试独立附加到正在运行应用程序的IE进程时,我也会收到此消息。Visual Studio 2010脚本调试器不适用于我

我需要做些什么来获得友好的脚本调试体验? (我已经成功地使用萤火虫调试这一点,但由于某种原因,我更喜欢与调试。)

这里是我的配置的一些细节:

  • 我发动我的东西在VS 2010 Beta 2中。
  • IE8版本8.0.7600.16385是我的默认浏览器。
  • 未选中“禁用脚本调试(Internet Explorer)”高级选项。
  • 未选中“禁用脚本调试(其他)”选项。
  • 在我的ASP.NET MVC 2项目的“web”属性选项卡中,将检查ASP.NET调试器。所有其他人都没有检查。
  • Visual Studio 2008脚本调试似乎工作得很好。

回答

30

如果选择Silverlight调试器,则调试器无法同时调试Silverlight代码和脚本代码JavaScript调试关闭。

  1. 转到项目的属性(Alt + Enter)。
  2. 对于网站项目:选择“开始选项”。或者对于Web应用程序:转到Web选项卡,在底部您将看到Debuggers选项。
  3. 如果您希望能够调试JavaScript,请检查Silverlight复选框是否勾选。 (不幸的是,这里的用户界面并不清楚这种副作用。)
+4

我可以吻你。我试图在一个asp.net站点上调试Javascript,附带一个Silverlight项目。每次我尝试调试时,我都会得到这个怪异的弹出窗口,要求我附加一个调试器,然后抱怨调试器已经连接。要清楚,请转到解决方案中的asp.net项目,然后转到项目属性并打开Web选项卡。底部有供调试器使用的复选框。禁用Silverlight调试器将使其再次成为JavaScript调试器。这需要进入wiki条目或其他东西。 – 2011-01-28 16:17:28

+2

**谢谢库克先生!** – Airn5475 2011-02-21 19:48:38

+0

@mister ok on mvc3/vs2010我看不到_Start Options_项目属性 – gideon 2011-08-19 11:54:37

1

CTRL + Alt + P(Attach to Process),选择IE,选择'script'作为调试类型。

+2

感谢这个想法,但是当我尝试使用F5和“调试器”关键字启动时,得到的信息与“当前位置没有可用的源代码”消息相同。 – 2009-10-26 16:58:30

+0

你可以在javascript中添加一个函数,附加,然后根据函数名创建一个新的断点? – popester 2009-10-26 18:36:42

7

我遇到了同样的问题。我无法让IDE甚至在脚本标记内设置的断点处断开。但是当我添加“调试器”时因为脚本标签中的第一行能够让IDE做出响应,但仅仅表示拆解并不可行。

但是,我能够点击调试工具,如“步入”和“跳过”。当我这样做时,IDE确实进入了一些我正在使用的外部脚本(JQuery和Google Maps)。所以我将JavaScript代码块从视图中取出并放入“Content”文件夹中的单独.js文件中。然后我添加了一个脚本标记来引用这个新的.js文件(url =“/Content/Test.js”)。

它的工作......有点麻烦,你必须经过这个努力,但也许有些东西要说JavaScript不直接包含在视图中。我希望这是他们打算修复的错误。

+0

Thx!像魅力一样工作! +1 – Stephane 2011-07-12 18:57:28

0

正如Ryan所述,我将脚本移到了Scripts文件夹下的一个单独文件中。 我还将调试添加到脚本的名称中,使其成为MyTestScript。 debug .js。我通过脚本标记包含脚本,并可以在调试器命中的脚本文件中设置断点。

0

我发现Google Chrome devloper工具能够完美地显示JavaScript。就我而言,我通常使用jQuery的getScript函数加载脚本,并且在加载页面或处理事件时,通常通过jQuery回调来执行代码。在Visual Studio 2010中,我经常遇到“无源”错误。悲伤我需要Chrome来调试JavaScript,这是我的Visual Studio项目的一部分。

4

在IE上进行调试时,VS似乎在解决方案资源管理器中添加了一个名为'Script Documents'的文件夹。在这个文件夹中有另一个名为“Windows Internet Explorer”的文件夹,里面我看到了所有加载的js脚本和当前在IE上显示的(编译的)HTML文件。在这个HTML文件的脚本标签上设置断点确实对我有用。

2

要解决此问题,请转到项目属性并选择“开始选项”。然后检查本地代码复选框。并取消选中Silverlight复选框,因为两个选项不能一起使用。

0

使用单独的js文件有其缺点。例如,你不能使用MVC助手。微软真的需要弄清楚这一点。

智能感知也没有正确的脚本块在视图上工作,即使您提供了参考意见是这样的:

/// <reference path="/Scripts/jquery-1.6-vsdoc.js" /> 
/// <reference path="/Scripts/jquery-1.6.js" /> 

智能感知工作正常的js文件这种方法虽然。

相关问题