由Codebehind所引发的

ASP.NET的页面模型有2种:

#1,single-file-page(单文件 Web 窗体页)
说明:
1,不能直接在 Visual Studio 中创建单文件 Web 窗体页。当创建新页时,Visual Studio 会在默认情况下创建单独的 .aspx 文件和类文件。若要创建单文件页,必须在一开始就将其创建为文本文件,然后将其扩展名更改为 .aspx。
2,不能通过从工具箱中拖动将非可视组件(如数据组件)添加到该页上,因为 Web 窗体设计器不会在该页中持久保存这些组件。相反,应使用代码添加这种组件。
3,在 HTML 视图中而不是在代码编辑器中编写代码。
4,当您编写代码时,Intellisense 将受不到支持,您得不到语法检查或语句结束、制表位设置或代码格式设置等功能。
5,必须手动将事件绑定到事件处理程序。对于单文件 Web 窗体页,Visual Studio 不支持通过双击为控件的默认事件创建处理程序,也不支持代码编辑器中类和事件的下拉列表。
6,不支持某些调试功能,例如不能够通过将鼠标指向一个变量值来查看该变量值。
7,由于不会将该页中的代码编译成项目程序集,所以在运行该页之前不会捕获编译时错误

#2,Codebehind(代码后置)
分2种情况:使用Codebehind和Src属性(或者预先编译与自动编译)
1,<%@ Page Codebehind="webform1.aspx.cs" Inherits="myweb.webform1" %>
Codebehind只是说明本页面说继承的类(myweb.webform1)可以在webform1.aspx.cs文件中查找,只是设计器(VS)告诉用户一个参考信息,所以在页面运行时候不执行(当然这个语句与没写完全一样)。如果不预先编译,出现错误:
======
分析器错误
说明: 在分析向此请求提供服务所需资源时出错。请检查下列特定分析错误详细信息并适当地修改源文件。

分析器错误信息: 未能加载类型“Test.WebForm1”。

源错误:

行 1: <%@ Page Codebehind="webform1.aspx.cs" Inherits="myweb.webform1" %>
======
解决办法:把相应的.aspx.cs文件编译成为dll放入bin文件夹,或者使用Src.

2,<%@ Page Src="webform1.aspx.cs" Inherits="myweb.webform1" %>
Src很明了,说明一个代码的路径,页面运行会自动连接到后置代码,自动编译。

根据大家自己的喜好与需求,以及结合可维护性,安全性等各方面的因素,选择3者之一。

posted @ 2004-08-23 01:52  cacard  阅读(7353)  评论(18编辑  收藏  举报