2016-04-20 23 views
5

Ho un file .CSHTML con un tag javascript. All'interno di questo tag script ho alcune righe di javascript. La prima riga di javascript si riferisce a una proprietà in @ViewBag. Tutte le altre linee javascript sono semplici script senza riferimenti MVC correlati.breakpoint su javascript in CSHTML?

Osservazione: Posso posizionare punti di interruzione (studio visivo 2015) su ciascuna di queste linee javascript. Tuttavia, tutti i punti di interruzione hanno il punto bianco al centro del simbolo del punto di interruzione (cerchio rosso) TRANNE per la linea con il riferimento @ViewBag (questa linea particolare non ha un punto bianco al centro).

Sembra che solo il punto di interruzione senza il punto bianco venga colpito durante l'esecuzione.

Domanda: Qualcuno può spiegare cosa sta succedendo qui? Cosa significa il punto bianco? Perché il punto di interruzione rosso semplice è l'unica linea che colpisce il punto di interruzione?

+0

codici javascript sono codici lato client ed è possibile eseguire il debug che il codice con gli strumenti di browser per sviluppatori e cerchi bianchi significa che in di debug modalità debuger tranne quelle righe – Damirchi

risposta

6

Il debugger di Visual Studio è in realtà in attesa di eseguire il debug del codice sul lato server effettivo all'interno del file anziché sul lato client Javascript al suo interno.

IIRC, Visual Studio consente di eseguire il debug del codice JavaScript come previsto in Internet Explorer (e possibilmente Edge), ma per altri browser è probabile che si desideri utilizzare uno strumento di terze parti o gli Strumenti per sviluppatori (F12) all'interno di il tuo browser.

Un approccio semplice sarebbe quello di sfruttare la parola chiave debugger di Javascript, che è possibile inserire nel codice ed eseguire con gli strumenti di sviluppo aperti (basta premere F12 e quindi aggiornare la pagina). Sarà colpito un punto di interruzione e il browser vi permetterà di scorrere il codice come ci si potrebbe aspettare:

function doWork(){ 
    // Ensure that this line is hit with the Developer Tools open in your 
    // browser 
    debugger; 
    // Do work here 
}