【问题标题】:CodeFile vs CodeBehindCodeFile 与 CodeBehind
【发布时间】:2010-09-09 12:53:40
【问题描述】:

CodeFile="file.ascx.cs"和CodeBehind="file.ascx.cs"在ASP.NET用户声明中有什么区别控制?

是更新的还是推荐的?还是有特定的用途?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

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

    【讨论】:

    • 那么,这是否意味着开发人员必须手动更改 Page 指令的属性,或者有办法创建一个默认情况下选择 codebehind 或 codefile 的 web 项目,每次新网页添加了吗?
    • 我看到它的方式是 CodeFile 用于“WebSite”,而“Codebehind”用于“Web 应用程序项目”,因为它需要编译。因此,在将“网站”转换为“Web 应用程序项目”时,我们可能需要手动将所有 CodeFile 出现更改为 Codebehind!
    • 代码文件在开发过程中非常有用,因为您可以在保存和刷新页面后测试更改,而无需构建项目。如果您不喜欢将 .cs 和 .vb 文件发布到生产服务器,您仍然可以选择将 .Net 2+ CodeFile 编译模型文件“发布”为 DLL。发布项目时,您可以选择“预编译”选项将 .aspx 文件和 .cs/.vb 文件中的一个或两个转换为 DLL,就像 CodeBehind 一样。
    • 正如 renegadeMind 指出的那样(以及它得到的支持),我认为应该编辑响应以强调 CodeFile 与“网站”类型的解决方案密切相关,而 CodeBehind 是链接到“Web 应用程序项目”。不幸的是,我的编辑被拒绝了。
    • codebehind 与 asp 1.1 相关联而 codefile 与 asp.net 2.0 相关联的事实可能会链接到认为 codefile 在它们不是时比 codebehind 更“优越”(恕我直言,这完全是相反的:网络应用比网站好)
    【解决方案2】:

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

    【讨论】:

    • but in src - 你的意思是but in the CodeFile
    【解决方案3】:

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

    【讨论】:

    • 我知道你的意思,约翰。也许它应该被否决,但我现在真的在努力解决这个问题。也许我的困难不是来自这种差异,而是来自其他东西。然而,虽然接受的答案回答了这个问题,但它对我面临的实际问题没有帮助。也许我应该提出一个新问题。
    猜你喜欢
    • 2012-05-12
    • 2011-02-04
    • 1970-01-01
    • 2010-12-03
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    相关资源
    最近更新 更多