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