Visual Studio 2012 - 未加载Razor视图文件(“.cshtml”)中的断点

问题描述 投票:6回答:4

在剃刀视图(“.cshtml”)中设置断点时,启动调试器时,通常为红色的圆圈会变为红色空心圆。将鼠标悬停在空心圆上时,会显示以下内容:

断点当前不会被击中。没有为此文档加载任何符号

它只是剃刀视图文件,普通的“.cs”文件没有问题。

还有很多其他问题已经提出了与上述相同的“错误”消息的解决方案,但没有一个实际起作用。我尝试过的:

  • 清洁解决方案
  • 确保在属性 - > Web窗口中,在“调试器”部分下检查ASP.NET
  • 确保在属性 - >构建窗口中,检查定义DEBUG和TRACE,并在同一窗口的输出部分中,单击高级按钮,调试信息设置为“完整”
  • 重建一百万次。
  • 使用具有管理员权限的VS(无论如何我都这样做)
  • 重启系统
  • 在IIS中重新启动站点
  • 确保将Active Solution Configuration设置为Debug
  • 检查在web.config文件中,编译debug =“true”

编辑:我指的是剃刀代码,当然不是HTML甚至是javascript。例如。在剃刀的foreach循环中设置断点

Edit2:如果我在控制器中设置了一个断点,我可以单步执行剃刀代码,因为调试器将在“完成”之前通过视图。我仍然无法在剃刀视图文件中实际设置断点。空心圆圈仍在显示,不会被击中。

Edit3:杀死指向w3wp.exe临时解决问题的“IIS工作进程”。我能够再次调试剃刀视图。几个小时后,再次出现同样的问题。

c# asp.net-mvc debugging visual-studio-2012 razor
4个回答
3
投票

我发现在.cshtml文件上切换Build Action = Content / Compile(在属性窗口中)(中间有一个构建)让我再次设置断点。


1
投票

这就是你要找的东西。

您需要在编译时编译视图而不是asp.net运行时。

https://stackoverflow.com/a/16052993/955831


0
投票

请记住,当您请求页面时,实际上会编译视图(默认情况下)。

这意味着在视图中设置断点时:

  1. 它显示“无符号”错误。这只意味着视图尚未编译。
  2. 它显示断点很好。这只是意味着它找到了一些编译版本的页面。像最后的工作版本......

所以基本上它是没有意义的信息来查看它在视图中鼠标悬停断点时所说的内容(至少在这方面)

如果您尝试调试此页面,则表示您遇到了问题。查看调试器输出到您的BROWSER的内容并首先修复它。我想我们会对有多少人在这方面表示惊讶。


-3
投票

在web.config文件中,检查下面的debug =“true”。

© www.soinside.com 2019 - 2024. All rights reserved.