Question

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 local et je peux le voir en cours d'exécution. Cependant, lorsque j'essaie de définir un point d'arrêt, il ne sera jamais touché. J'ai également essayé d'utiliser le "débogueur". mot-clé, et lorsque je le fais, je reçois un message décevant "aucun code source n'est disponible pour l'emplacement actuel". message. Je reçois également ce message lorsque j'essaie 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:

  • Je lance mes affaires dans la version bêta 2 de VS 2010.
  • IE8 version 8.0.7600.16385 est mon navigateur par défaut.
  • Le "Désactiver le débogage de script (Internet Explorer)" l'option avancée n'est pas cochée.
  • Le "Désactiver le débogage de script (autre)" L’option est décochée.
  • Dans le projet "Web" de mon projet ASP.NET MVC 2, Propriétés, le débogueur ASP.NET est vérifié. Tous les autres ne sont pas cochés.
  • Le débogage de script Visual Studio 2008 semble fonctionner correctement.
Était-ce utile?

La solution

Le débogueur ne peut pas déboguer le code Silverlight et le code de script en même temps, si le débogueur Silverlight est sélectionné. Le débogage JavaScript est désactivé.

  1. Accédez aux propriétés du projet (Alt + Entrée).
  2. Pour un projet de site Web: sélectionnez "Options de démarrage". Ou pour une application Web: allez dans l’onglet Web et en bas, vous verrez l’option Débogueurs.
  3. Vérifiez que la case Silverlight n'est pas cochée si vous voulez pouvoir déboguer JavaScript. (Il est regrettable que l’interface utilisateur de cet effet secondaire ne soit pas claire.)

Autres conseils

J'avais les mêmes problèmes. Je n'ai pas réussi à faire en sorte que l'EDI se casse même à un point d'arrêt défini dans une balise de script. Cependant, lorsque j’ai ajouté "debugger;" car la première ligne de la balise script a pu amener l'EDI à 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 "entrer dans" et "entrer dans". et "passer par-dessus". Lorsque j'ai fait cela, l'EDI 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é dans le champ "Contenu". dossier. 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 directement inclus dans une vue. J'espère que c'est un bogue 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.

Pour résoudre ce problème, accédez à 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 car 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 utilisé par le débogueur.

J'ai constaté que l'outil de développement Google Chrome montre parfaitement le code JavaScript. 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 message "Aucune source". punaise. 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top