Reputation: 3381
When setting a break point in a razor view (".cshtml") the circle which is normally red turns to a red hollow circle when the debugger is started. When hovering over the hollow circle it displays the following:
The breakpoint will not currently be hit. No symbols have been loaded for this document
It's only razor view files, with normal ".cs" files there are no problems.
There are a lot of other questions which have proposed solutions for the same "error" message as above but none has actually worked. What I have tried:
Edit: I'm referring to the razor code of course, not html or even javascript. E.g. setting a break point in a foreach loop in razor
Edit2: I'm able to step through the razor code if I set a breakpoint in a controller, as the the debugger will go through the view before being "done". I'm still not able to actually set breakpoints in razor view files though. The hollow circle is still showing and it won't get hit.
Edit3: Killing the "IIS Working Process" which points to w3wp.exe temporary solved the problem. I was able to debug razor views again. A few hours later, the same problem again.
Upvotes: 6
Views: 12350
Reputation: 3626
I found out that toggling the Build Action = Content / Compile (in the property window) on the .cshtml
file (with a build in between) let me set break points again.
Upvotes: 3
Reputation: 1561
Remember that views are actually compiled when you request the page (by default).
This means when you set a breakpoint in a view:
So basically its not meaningful information to look at what it says when you mouseover the breakpoint in a view (at least in this regard)
If you are trying to debug this page, then you have a problem. Look at what the debugger is outputting to your BROWSER instead and fix that first. I think we'll be surprised about how many people are going to facepalm at this.
Upvotes: 0
Reputation: 2531
This is what your looking for.
You need to compile your views at compile time not asp.net runtime.
https://stackoverflow.com/a/16052993/955831
Upvotes: 1