Je viens d'installer VS 2010 Beta 2 et je voulais jouer avec un projet ASP.NET MVC 2. J'ai simplement ajouté un script (alert('hello');
) dans la vue index.aspx du contrôleur Home et je peux le voir en cours d'exécution. Lorsque j'essaie de définir un point d'arrêt, cependant, il ne sera jamais touché. J'ai aussi essayé d'utiliser le mot-clé "débogueur" et le message "le code source correspondant à l'emplacement actuel" est décevant. Je reçois également ce message lorsque je tente de me connecter indépendamment à un processus IE dans lequel mon application est en cours d'exécution.
Que dois-je faire pour obtenir une expérience de débogage de script convivial? (J'ai utilisé avec succès Firebug pour déboguer ceci, mais pour une raison quelconque, je préfère le débogueur VS.)
Voici quelques détails de ma configuration:
Le débogueur ne peut pas déboguer à la fois le code Silverlight et le code de script si le débogueur Silverlight est sélectionné. Le débogage JavaScript est désactivé.
J'avais les mêmes problèmes. Je n'ai pas pu obtenir que le IDE se casse même à un point d'arrêt défini dans une balise de script. Cependant, quand j'ai ajouté "debugger;" comme la première ligne de la balise de script pouvait obtenir le IDE pour répondre, mais seulement pour dire que le désastre n'était pas disponible.
Cependant, j'ai pu cliquer sur les outils de débogage tels que "pas à pas" et "pas à pas". Lorsque j’ai fait cela, IDE a progressé dans certains des scripts externes que j’utilise (JQuery et Google Maps). J'ai donc retiré le bloc de code JavaScript de la vue et l'ai placé dans un fichier .js séparé du dossier "Contenu". Ensuite, j'ai ajouté une balise de script pour référencer ce nouveau fichier .js (url = "/Content/Test.js").
Cela a fonctionné ... un peu gênant que vous deviez passer par cet effort, mais peut-être y a-t-il quelque chose à dire pour que JavaScript ne soit pas inclus directement dans une vue. J'espère que c'est un bug qu'ils ont l'intention de corriger.
Lors du débogage sur IE, VS semble ajouter un dossier appelé "Script Documents" à l'explorateur de solutions. Dans ce dossier, il y a un autre dossier appelé "Windows Internet Explorer", dans lequel se trouvent tous les scripts js chargés et le fichier HTML (compilé) en cours d'affichage sur IE. La définition de points d'arrêt sur les balises de script de ce fichier HTML me convient parfaitement.
Pour résoudre ce problème, allez dans Propriétés du projet et sélectionnez "Options de démarrage". Cochez ensuite la case à cocher de code natif. et décochez la case Silverlight parce que les deux options ne fonctionnent pas ensemble.
CTRL + Alt + P (Attacher au processus), sélectionnez Internet Explorer, sélectionnez "script" pour le type de débogage.
Comme Ryan l'a noté ci-dessus, j'ai déplacé mon script dans un fichier séparé sous le dossier Scripts . J'ai également ajouté debug dans le nom du script pour qu'il devienne MyTestScript. debug . Js. J'ai inclus le script via une balise de script et pouvais définir des points de rupture dans le fichier de script touché par le débogueur.
J'ai trouvé que l'outil de Google Chrome devloper montre le JavaScript parfaitement. Dans mon cas, je charge normalement le script avec la fonction getScript de jQuery et l'exécution du code s'effectue généralement par un rappel jQuery lors du chargement d'une page ou de la gestion d'un événement. Avec Visual Studio 2010, j'ai souvent rencontré le bogue "Aucune source". Triste, j'ai besoin de Chrome pour déboguer JavaScript qui fait partie de mon projet Visual Studio.
L'utilisation d'un fichier js distinct a ses inconvénients. Par exemple, vous ne pouvez pas utiliser les helpers MVC. Microsoft a vraiment besoin de comprendre celui-ci.
Intellisense ne fonctionne pas non plus correctement dans les blocs de script d'une vue, même si vous incluez les commentaires de référence tels que:
/// <reference path="/Scripts/jquery-1.6-vsdoc.js" />
/// <reference path="/Scripts/jquery-1.6.js" />
Intellisense fonctionne bien dans le fichier js avec cette approche cependant.