ASP.NET用户声明中 CodeFile =“file.ascx.cs”和 CodeBehind =“file.ascx.cs”之间有什么区别控制?
是新手还是推荐?或者它们是否具有特定用途?
答案 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中将应用程序作为项目打开时,才会出现这种混淆。