【问题标题】:ASP.NET CodeFile, CodeBehind and InheritsASP.NET 代码文件、代码隐藏和继承
【发布时间】:2014-02-17 22:25:05
【问题描述】:

我的困惑在这里或网络上并不新鲜,但是,我有一些问题在任何地方都找不到答案:

第一个问题是:

为什么在 CodeFile 而不是 CodeBehind 上需要继承?

我阅读了:http://msdn.microsoft.com/en-us/library/vstudio/ms178138(v=vs.100).aspx 和更多页面,我知道 CodeFile 用于源代码和动态编译,而另一个用于程序集。这又给我提出了另一个问题:

如果我发现为什么每个人都说 CodeBehind 必须是一个程序集 File.aspx.cs 无处不在,包括在我拥有的测试项目中 奇迹般有效?这是编译后的程序集吗?

但是,从第一个问题开始,根据我提供的网址,我可能会理解为什么需要继承。我假设编译器必须知道稍后要编译的部分类的名称是什么。说得通。然而,在 CodeBehind 上是否也有必要?如果我们要合并部分类,我想我应该给出我想要合并的类的名称。我什至尝试将另一个部分类添加到 .cs 文件中,它编译/运行良好。

我错过了什么吗?

我还读到 CodeBehind 不再使用,它​​是 CodeFile,新的。

有任何 .NET 专家可以帮助我吗?

提前谢谢大家。

更新:

我尝试在 CodeBehind 上不使用继承来实现事件。它没有用。这更有意义。但是,它不会抱怨编译,而 CodeFile 会抱怨。这有什么原因吗?

【问题讨论】:

    标签: asp.net webforms


    【解决方案1】:

    Inherits 属性携带写在代码隐藏文件中的类名。您可以在同一代码隐藏文件中有多个类,并在两个不同的 .aspx 文件中继承

    【讨论】:

      【解决方案2】:

      CodeBehind 文件提供了 aspx 页面的代码。当您添加一个新的“带有 CodeBehind 的 ASP.NET 网页”时,我们称之为 NewPage.aspx,同时还会创建 2 个文件,分别称为 NewPage.aspx.cs 和 NewPage.aspx.designer.cs。 NewPage.aspx.cs 是您的 CodeBehind 文件。正如 Vijay 所说,由于(C#)文件可以有多个类(这与 Java 不同,Java 中的类文件只能包含 1 个类,并且类名必须与文件名匹配),Inherits=[namespace].[class] 表示哪个类您想实际用于网页。 CodeBehind 属性用于 Web 应用程序项目。另一方面,CodeFile 属性用于网站项目。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-02
        相关资源
        最近更新 更多