Inherits、CodeFile、CodeBehind
在 ASP.NET中使用代码隐藏方法来设计Web
窗体,可使页代码能够更清晰地从 HTML
内容中分离到完全单独的文件中。
通常一个 @page
指令如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" %>
其中有三个属性(Inherits、CodeFile、CodeBehind
)非常容易混淆,下面分别给予说明。
Inherits
(继承的意思)
msdn解释:定义供页继承的代码隐藏类。 它可以是从 Page
类派生的任何类。 此特性与 CodeFile
特性一起使用,后者包含指向代码隐藏类的源文件的路径。 Inherits
特性在使用 C#
作为页面语言时区分大小写,而在使用 Visual Basic
作为页面语言时不区分大小写。
如果 Inherits
特性不包含命名空间,ASP.NET
将检查 ClassName
特性是否包含命名空间。 如果包含,ASP.NET
将尝试使用 ClassName
特性的命名空间加载 Inherits
特性中引用的类。 (这假定 Inherits
特性和 ClassName
特性使用同一命名空间。)
Inherits
属性用于定义当前 Web 窗体所继承的代码隐藏类(该类是 System.Web.UI.Page
的派生类)。
这个 inherits
属性只用于采用代码隐藏方式编写的 Web 窗体,也就是,如果你的代码全都是在 Web 窗体的<script runat="server"></script>
标签中,就不必用这个属性了。
CodeFile
msdn解释:指定指向页引用的代码隐藏文件的路径。 此特性与 Inherits 特性一起使用,用于将代码隐藏源文件与网页相关联。 此特性仅对编译的页有效。
此特性用于网站项目。
Codebehind
msdn解释:指定包含与页关联的类的已编译文件的名称。 该特性不能在运行时使用。此特性用于 Web应用程序项目
。
Codebehind
属性并不是一个真正的 ASP.NET
属性,在ASP.NET
文档中是找不到它的。
它其实只是一个 Visual Studio .NET
属性,
Visual Studio .NET
就是借用这个属性来很好地跟踪管理项目中的 Web 窗体和与之相对的代码隐藏文件,
比如当你在设计环境中往 Web
窗体上放入一个服务器控件时,
Visual Studio .NET
将自动找到与该 Web
窗体相对应的代码隐藏文件,并自动插入相关的代码。