CodeFile与CodeBehind

在ASP.NET用户控件的声明中, CodeFile =“file.ascx.cs”和CodeBehind =“file.ascx.cs”有什么不同?

是一个更新还是推荐? 还是他们有具体的用法?

CodeBehind :需要编译(ASP.NET 1.1模型)。 编译的二进制文件放在网站的bin文件夹中。 在部署之前,您需要在Visual Studio中进行编译。 如果您不希望源代码以纯文本的forms显示,那么这是一个很好的模式。 例如,向客户交付时,您没有义务提供代码。

CodeFile :为源文件提供部署解决scheme。 ASP.NET 2.0运行库在需要时编译代码。 编译的文件位于Microsoft.NET [.NET版本] \ Temporary ASP.NET文件。

代码隐藏文件需要在运行前编译,但在src中,我们不需要编译,然后运行..只是保存文件。

我正在使用Visual Studio Express 2012 For Web中的应用程序项目并使用.NET 4.0。 在用于login和更改密码页面的文件后面的代码中,我发现在声明中需要CodeBehind和CodeFile的情况。

如果我不添加一个代码文件引用

 CodeFile=login.aspx.cs 

网页不parsing,浏览器显示parsing器错误。 是否编译项目并不重要。

如果我不添加代码后面的代码

 CodeBehind=login.aspx.cs 

像MembershipUser这样的安全类的引用在编译时和尝试使用像“无法findtypes或命名空间MembershipUser”的错误时尝试使用intellisense都会失败。 我已经按照.NET 4.0框架的要求添加了对System.Web.ApplicationServices的引用。

我应该补充说,这些麻烦的文件正在使用IIS应用程序工具创build的网站中的应用程序中运行。 当我从Visual Studio打开网站时,parsing器错误或引用错误没有任何困难。 这种混淆只发生在Visual Studio中作为项目打开应用程序。