为什么即使代码未编译,代码更改也会反映在 ASP.NET 网站中?

Why are changes in code reflected in an ASP.NET website even if the code does not compile?

我在 Visual Studio 2010 年从事一个相当大的网站项目,我想知道为什么当我单独测试网页时(通过右键单击 .aspx 文件并选择 View Changes in Browser),即使代码中存在阻止其编译的错误。这让我很困惑。当我 运行 Visual Studio 中的代码时,我遇到了几个错误。但是,如果我只是在浏览器中查看页面,我在客户端代码或服务器端代码中所做的任何更改都会反映出来。这对客户端代码和标记有意义,但为什么它甚至采用 "flawed" 服务器端代码?服务器端代码不需要编译吗?感谢您的任何输入。关于这个主题我还有很多问题,但我希望这个问题的答案能帮助我回答我的其他问题。

编辑:关于我遇到的错误的更多信息

我从分配给这个项目的原始开发人员那里了解到了更多细节。他告诉我,对于他在项目中内置的每个附加功能,他都复制并粘贴了原始项目目录并重命名了该文件夹。例如,这是原始项目目录:

App_Code[文件夹]

App_Data[文件夹]

Web.config [文件]

...

他每次在网站上新建 "module" 时都复制这个。这当然不是我会做的方式,但现在已经完成了。就目前而言,这个原始项目目录有 4 个副本,这意味着有 4 个 web.config 文件、4 个 App_CodeApp_Data 文件夹(以及 4 个 类在 App_Code 文件夹中)。我得到的错误是这样的:[server control] is not declared. It may be inaccessible due to its protection level[server control] is not a member of [partial class],以及其他一些如果它们实际上是错误肯定会提醒 intellisense 的错误。似乎由于某种原因,我的每个网页上的服务器控件都没有正确链接到相应的代码隐藏文件。但智能感知不会突出显示这些错误或以任何方式承认它们。当我尝试构建项目时出现这些错误。我曾尝试公开设计器代码文件以尝试手动修复这些错误,但我了解到您不能在 Website 项目中这样做。老实说,我很茫然。

如果有人知道如何解决这个问题,请告诉我。如果我能更清楚,请告诉我。我不能包含任何实际代码,但如果有帮助的话,我可以尝试给你一些例子。

这是另一个似乎与我相似的问题。甚至 Visual Studio 报告的错误数量也是一样的。 variable is not declared it may be inaccessible due to its protection level

原来是原开发者复制了部分class文件。他们分散在整个项目中,所以我不知道他们在那里。删除它们后,一切都按我预期的那样进行。