2009-10-26 65 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文件這種方法雖然。

相關問題