12

尽管在我的 ASP.Net MVC 2 项目的 Web 选项卡上选中了 Enable Edit and Continue,但实际上我无法在运行时更改源代码。例如,如果我在调试器中暂停时尝试编辑控制器,我无法更改文件(就像只读一样)。

我在 ASP.NET web 项目中找到了相关的帖子编辑并继续,但是

  • 答案似乎表明我应该至少能够编辑代码,然后重新加载页面以查看结果。
  • 我不知道 Web 应用程序和网站项目之间的区别是什么
4

4 回答 4

18

区别在于,Web 应用程序需要编译,而 Web 站点在执行时是动态编译的(甚至是背后的代码)。

由于 ASP.NET MVC 每次进行更改时都使用 Web 应用程序,因此您需要重新编译它,并且重新编译需要离开调试模式。实际上,您可以修改视图和局部视图而无需重新编译,但对于控制器逻辑,您总是需要重新编译。

为了加快速度,我建议您执行以下操作:

  1. 当使用视图和局部视图(即做一些设计工作)时,运行应用程序Ctrl+F5而不是F5简单地以正常模式启动应用程序,当您刷新浏览器时,您的更改将自动获取
  2. 使用背后的代码时,您应该有相应的单元测试,以便您快速检查行为。在这种情况下,在调试模式下运行可能会更有用,因为您可能需要检查值。
于 2010-05-28T06:42:05.490 回答
1

使用 Mvc,您无法编辑和继续。但是,如果您通过 IISExpress 运行项目,则无需在调试模式下运行项目,您就可以编辑代码隐藏,重新构建项目。然后在浏览器中刷新页面就可以了。

于 2012-01-23T23:04:24.533 回答
0

除了@Darin 的回答,我不得不说我不喜欢能够在运行时更改代码的想法。

我认为我们应该有足够的纪律来编写反映预期结果的测试,编写代码然后进行现场测试。

尽管如此,我解决这个问题的方法是在浏览器中启动应用程序而不运行,进行更改,编译然后刷新浏览器。

当然,我没有单步执行代码的好处,但我可以在需要的任何时候附加到工作进程。

于 2010-05-28T06:55:23.137 回答
0

升级到 VS2012。这确实支持 ASP.Net 项目的编辑并继续(从项目属性窗口中的 Web 选项卡)。虽然默认情况下它似乎没有启用!

于 2014-06-12T10:24:27.940 回答