网页代码模型:单文件、Src、CodeFile、CodBehind 区别

作者:vkvi 来源:ITPOW(原创) 日期:2011-5-27

网页代码模型就是说网页的 CSharp(或 VB、或其他语言)放在哪里。

单文件

这是很早的一种模式,就像 ASP 一样,直接与 HTML 代码放在一个文件中。

这种代码放在带 runat="server" 的 script 标签中。

  • 优点是简单,只需要一个文件就搞定一个网页。
  • 缺点也是简单,太简单了,与 HTML 绞在一个页面太混乱了,不能适应复杂的项目或网页。

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 有什么区别?

相关文章