CodeFile与CodeBehind

时间:2008-09-16 14:37:04

标签: asp.net

ASP.NET用户声明中 CodeFile =“file.ascx.cs”和 CodeBehind =“file.ascx.cs”之间有什么区别控制?

是新手还是推荐?或者它们是否具有特定用途?

3 个答案:

答案 0 :(得分:159)

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

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

答案 1 :(得分:5)

Codebehind文件需要在运行之前编译,但在src中我们不需要编译然后运行..只需保存文件。

答案 2 :(得分:5)

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

如果我不添加像

这样的代码文件引用
CodeFile=login.aspx.cs

网页无法解析,浏览器显示解析器错误。我是否编译项目并不重要。

如果我没有在

之类的引用后面添加代码
CodeBehind=login.aspx.cs

对MembershipUser等安全类的引用在编译时和尝试使用intellisense时都会失败,例如“找不到类型或名称空间MembershipUser”。我已根据.Net 4.0框架的要求添加了对System.Web.ApplicationServices的引用。

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