it-swarm.cn

CodeFile与CodeBehind

在ASP.Net用户控件的声明中, CodeFile =“file.ascx.cs”和 CodeBehind =“file.ascx.cs”之间有什么区别?

是新手还是推荐?或者他们有具体用途吗?

132
Soldarnal

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

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

159
Shafqat Ahmed

我正在使用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中将应用程序作为项目打开时,才会出现这种混淆。

5
DavidHyogo

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

5
Ranjeet Prasad