什么是asp.net的Web Forms
Asp.net Web Forms 页面框架是可升级的通用语言运行时刻(CLR)程序模型,用来在服务器端动态生成WEB页面。(美国人说话就是别扭,其实Web Forms就是asp.net编写的页面)
作为ASP的合理演化(ASP.NET对现存的ASP提供语法兼容),ASP.NET Web Forms框架的设计目的,是用来解决ASP模式的不足。它提供:
· 创建和使用可重用的用户界面控件,封装常用的功能,减少页面开发者书写代码的工作量。
· 为开发者提供结构清晰、风格井然的页面逻辑(而不是“意大利面条”的结构)。
· 提供强大的所见即所得(WYSIWYG)的页面开发工具(ASP代码对于工具是不透明的)
本教材的这一部分内容提供高水平的代码,对ASP.NET WEB FORMS的关键功能做一个初步介绍。后续的章节将更深入地剖析ASP.NET WEB FORMS的功能
书写第一个Web Forms页面
ASP.NET Web Forms 页面是以aspx为扩展名的文本文件。他们可以通过IIS虚拟根目录树来进行配置。当浏览器客户端请求.aspx资源的时候,ASP.NET运行时刻库分析和编译目标文件,形成.NET框架类。这个类能够用来动态的处理即将开始的请求。(注意:.aspx文件只有在第一次被访问的时候编译;编译后的结果在以后的请求中被重复利用)。
可以简单的把HTML文件的扩展名改为aspx,从而得到一个asp.net文件(不需要修改任何代码)。例如,下面的例子演示一个HTML页,它收集用户的姓名和分类偏好,然后在按下按钮的时候提交表单。 C# Intro1.aspx
[运行] | [源程序]
重要提示: 注意点击Lookup 按钮的时候什么也不会发生。这是因为.aspx文件仅仅包含静态的HTML(没有任何动态的内容)。因此,同样的HTML将在每一次往返的的时候,返回给客户端,表单的字段内容在提交过程中丢失。
使用ASP的```
1ASP.NET对现有的ASP页面提供语法兼容。这种兼容包括```
2
3```代码引用块,在.aspx文件中,它可以和HTML内容混合使用。这些代码块在引用的时候从上倒下执行。
4下面的例子演示了在HTML块中,如何使用```
5
6```引用标志来实现循环(依次增大字体尺寸)
7
8 C# Intro2.aspx
9
10[运行] | [源程序]
11重要提示:与ASP不同,上面```
12
13```块中使用的代码是真正编译过的,而不是脚本引擎的解释执行。因此提高了运行时的执行效率。
14ASP.NET页面开发者可以利用```
15
16```代码块动态的修改HTML的输出,就像使用ASP一样。例如,下面的例子演示了如何使用```
17
18```实现响应客户端提交的结果。
19
20 C# Intro3.aspx
21
22[运行] | [源程序]
23重要提示:```
24
25```代码块提供了一种有力的方法,可以实现从ASP.NET页面定制和操作文本输出,但是,却没有提供结构清晰的程序模式。正如上面的例子,开发者仅仅使用```
26
27```代码块,就必须在请求发送往返中,自己管理页面状态,自己管理解释后送出的值。
28
29ASP.NET服务器控件介绍
30除了使用(或者说作为一种代替)```
31
32```来编动态内容的程序以外,asp.net页面开发者可以使用ASP.NET 服务器控件来设计WEB页面程序。在.aspx文件中声明服务器空间的时候,使用asp.net特定的标签或者使用包含 runat="server" 属性的html标签。HTML标签作为控件使用的情况,在名称空间System.Web.UI.HtmlControls中定义。任何不能映射到控件的标签,被赋值为System.Web.UI.HtmlControls.HtmlGenericControl类型。
33下面的例子使用了4个服务器控件: