网页代码模型就是说网页的 CSharp(或 VB、或其他语言)放在哪里。
单文件
这是很早的一种模式,就像 ASP 一样,直接与 HTML 代码放在一个文件中。
这种代码放在带 runat="server" 的 script 标签中。
Src
Src、CodeFile、CodBehind 就不是单文件模式了,而是一种代码隐藏模式,即代码和 HTML 是分开了的。
在 @ Page 指令中添加 Src,指明代码的文件。这个是 1.x 的内容,现在不用这个了,因为它有个最大的缺点,就是 .aspx 中的控件,还得到 .aspx.cs 文件中再声明一次,比如有个下拉列表框 id 为 _list,那么使用时得在 .aspx.cs 类中增加一行代码,如下:
不然的话,没办法在代码中为 _list 编程。
CodeFile
CodeFile 也是指明 .aspx.cs 文件的,但它不像 Src 那么麻烦。
CodBehind
CodBehind 也是指明 .aspx.cs 文件的,但它不像 Src 那么麻烦。
CodeFile 与 CodBehind
麻烦来了,这二者有什么区别呢?
CodeFile 是用于网站项目的;CodBehind 是用于 Web 应用程序的。请参见 Web 应用程序项目与网站项目。
到底怎样呢?
用 CodeFile 的话,需要把 .aspx.cs 文件一同传到服务器上,才能运行;用 CodeBehind 的话,也就是说是 Web 应用程序项目,会将所有 .aspx.cs 编译成一个 dll,只需要传这个 dll 就可以了。
以上是部署上的显著区别,再看看开发上的显著区别。
CodeFile 不需要为 @Page 指令的 Inherits 对应的类指定命名空间;而 CodeBehind 则必须要命名空间,并且 Inherits 必须使用命名空间,比如:Inherits="Cftea.Category",这也是很多网站项目转换成 Web 应用程序项目报错的原因。具体仍然请参见 Web 应用程序项目与网站项目。
CodePage
哪里冒出来的,没你的事。CodePage 可不是对应一个文件,而代码页。最早接触代码页应该是很久前,使用免费的国外空间,ASP 显示不出中文,加一句就 OK 了,请参见 CodePage、ContentEncoding、Charset、ContentType、meta charset 有什么区别?。