【发布时间】:2010-09-09 12:53:40
【问题描述】:
CodeFile="file.ascx.cs"和CodeBehind="file.ascx.cs"在ASP.NET用户声明中有什么区别控制?
是更新的还是推荐的?还是有特定的用途?
【问题讨论】:
标签: asp.net
CodeFile="file.ascx.cs"和CodeBehind="file.ascx.cs"在ASP.NET用户声明中有什么区别控制?
是更新的还是推荐的?还是有特定的用途?
【问题讨论】:
标签: asp.net
CodeBehind:需要编译(ASP.NET 1.1 模型)。编译后的二进制文件放在网站的 bin 文件夹中。在部署之前,您需要在 Visual Studio 中进行编译。当您不希望源代码以纯文本形式查看时,这是一个很好的模型。例如,在向您没有义务提供代码的客户交付时。
CodeFile:您为源文件提供部署解决方案。 ASP.NET 2.0 运行时在需要时编译代码。编译后的文件位于 Microsoft.NET[.NET version]\Temporary ASP.NET Files。
【讨论】:
Codebehind 文件需要在运行前编译,但在 src 中我们不需要编译然后运行.. 只需保存文件即可。
【讨论】:
but in src - 你的意思是but in the CodeFile?
我正在使用 Visual Studio Express 2012 For Web 中的应用程序项目并使用 .NET 4.0。在我的登录和更改密码页面的代码隐藏文件中,我发现声明中需要 CodeBehind 和 CodeFile。
如果我不添加类似的代码文件引用
CodeFile=login.aspx.cs
网页未解析,浏览器显示解析器错误。我是否编译项目都没有关系。
如果我没有在参考后面添加代码
CodeBehind=login.aspx.cs
在编译时和尝试使用智能感知时,对 MembershipUser 等安全类的引用都会失败,并出现“找不到类型或命名空间 MembershipUser”之类的错误。根据 .Net 4.0 框架的要求,我添加了对 System.Web.ApplicationServices 的引用。
我应该补充一点,这些麻烦的文件正在使用 IIS 应用程序工具创建的网站内的应用程序中运行。当我从 Visual Studio 打开网站时,我没有遇到解析器错误或引用错误的问题。仅当我在 Visual Studio 中将应用程序作为项目打开时才会出现这种混淆。
【讨论】: