Pregunta

Acabo de instalar VS 2010 Beta 2 y quería jugar con un proyecto ASP.NET MVC 2. Simplemente agregué un script ( alert ('hello'); ) en la vista index.aspx del controlador de inicio, y puedo verlo ejecutándose. Sin embargo, cuando trato de establecer un punto de interrupción, nunca se alcanza. También intenté usar el " depurador " palabra clave, y cuando lo hago, obtengo un decepcionante "no hay código fuente disponible para la ubicación actual" mensaje. También recibo este mensaje cuando intento conectarme de forma independiente a un proceso de IE donde se ejecuta mi aplicación.

¿Qué debo hacer para obtener una experiencia de depuración de script amigable? (He utilizado con éxito Firebug para depurar esto, pero por alguna razón prefiero el depurador VS).

Aquí hay algunos detalles de mi configuración:

  • Estoy lanzando mis cosas en VS 2010 Beta 2.
  • IE8 versión 8.0.7600.16385 es mi navegador predeterminado.
  • El " Deshabilitar depuración de script (Internet Explorer) " la opción avanzada no está marcada.
  • El " Deshabilitar depuración de script (Otro) " la opción no está marcada.
  • En la web de mi proyecto ASP.NET MVC 2 propiedades, se verifica el depurador ASP.NET. Todos los demás están desmarcados.
  • La depuración de script de Visual Studio 2008 parece funcionar bien.
¿Fue útil?

Solución

El depurador no puede depurar tanto el código Silverlight como el código Script al mismo tiempo, si se selecciona el depurador Silverlight, la depuración de JavaScript está desactivada.

  1. Vaya a las Propiedades del proyecto (Alt + Intro).
  2. Para un proyecto de sitio web: seleccione "Opciones de inicio". O para una aplicación web: vaya a la pestaña Web y en la parte inferior verá la opción Depuradores.
  3. Verifique que la casilla de verificación Silverlight NO esté marcada si desea poder depurar JavaScript. (Es lamentable que la interfaz de usuario aquí no sea clara sobre este efecto secundario).

Otros consejos

Estaba teniendo los mismos problemas. No pude hacer que el IDE incluso se rompiera en un punto de interrupción establecido dentro de una etiqueta de script. Sin embargo, cuando agregué " depurador; " ya que la primera línea en la etiqueta del script pudo hacer que el IDE respondiera, pero luego solo dijo que el desarmable no estaba disponible.

Sin embargo, pude hacer clic en las herramientas de depuración como " entrar en " y "pasar". Cuando hice esto, el IDE progresó en algunos de los scripts externos que estoy usando (JQuery y Google Maps). Así que saqué el bloque de código JavaScript de la vista y lo puse en un archivo .js separado en el " Contenido " carpeta. Luego agregué una etiqueta de script para hacer referencia a este nuevo archivo .js (url = " /Content/Test.js").

Funcionó ... un poco molesto que tengas que pasar por este esfuerzo, pero tal vez hay algo que decir para que JavaScript no se incluya directamente en una vista. Espero que este sea un error que pretendan corregir.

Al depurar en IE, VS parece agregar una carpeta llamada 'Documentos de script' al Explorador de soluciones. Dentro de esta carpeta hay otra carpeta llamada 'Windows Internet Explorer', y dentro de ella veo todos los scripts js cargados y el archivo HTML (compilado) que se muestra actualmente en IE. Establecer puntos de interrupción en las etiquetas de script en este archivo HTML me funciona.

Para resolver esto, vaya a Propiedades del proyecto y seleccione "Opciones de inicio". Luego marque la casilla de verificación Código nativo. y Desmarque la casilla de verificación Silverlight porque ambas opciones no funcionan juntas.

CTRL + Alt + P (Adjuntar a proceso), seleccione IE, seleccione 'script' para el tipo de depuración.

Como Ryan señaló anteriormente, moví mi script a un archivo separado en la carpeta Scripts. También agregué depuración en el nombre del script para que se convirtiera en MyTestScript. depuración .js. Incluí el script a través de una etiqueta de script y pude establecer puntos de interrupción en el archivo de script que el depurador alcanzó.

He descubierto que la herramienta de desarrollo de Google Chrome muestra el JavaScript perfectamente. En mi caso, normalmente estoy cargando el script con la función getScript de jQuery y la ejecución del código generalmente se realiza mediante una devolución de llamada jQuery al cargar una página o manejar un evento. Con Visual Studio 2010, me encontré con frecuencia el "No hay fuente" insecto. Lamentablemente, necesito Chrome para depurar JavaScript que forma parte de mi proyecto de Visual Studio.

El uso de un archivo js separado tiene sus inconvenientes. Por ejemplo, no puedes usar MVC helpers. Microsoft realmente necesita resolver esto.

Intellisense tampoco funciona correctamente en bloques de script en una vista, incluso si incluye los comentarios de referencia como este:

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

Intellisense funciona bien en el archivo js con este enfoque, sin embargo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top