日期:2010-04-24  浏览次数:20464 次

什么是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的<% %>引用标志

ASP.NET对现有的ASP页面提供语法兼容。这种兼容包括<% %>代码引用块,在.aspx文件中,它可以和HTML内容混合使用。这些代码块在引用的时候从上倒下执行。

下面的例子演示了在HTML块中,如何使用<% %>引用标志来实现循环(依次增大字体尺寸)

C# Intro2.aspx

重要提示:与ASP不同,上面<% %>块中使用的代码是真正编译过的,而不是脚本引擎的解释执行。因此提高了运行时的执行效率。

ASP.NET页面开发者可以利用<% %>代码块动态的修改HTML的输出,就像使用ASP一样。例如,下面的例子演示了如何使用<% %>实现响应客户端提交的结果。

C# Intro3.aspx

重要提示:<% %>代码块提供了一种有力的方法,可以实现从ASP.NET页面定制和操作文本输出,但是,却没有提供结构清晰的程序模式。正如上面的例子,开发者仅仅使用<% %>代码块,就必须在请求发送往返中,自己管理页面状态,自己管理解释后送出的值。

ASP.NET服务器控件介绍

除了使用(或者说作为一种代替)<% %>来编动态内容的程序以外,asp.net页面开发者可以使用ASP.NET 服务器控件来设计WEB页面程序。

在.aspx文件中声明服务器空间的时候,使用asp.net特定的标签或者使用包含 runat="server" 属性的html标签。HTML标签作为控件使用的情况,在名称空间System.Web.UI.HtmlControls中定义。任何不能映射到控件的标签,被赋值为System.Web.UI.HtmlControls.HtmlGenericControl类型。

下面的例子使用了4个服务器控件:<form runat=server>, <asp:textbox runat=server>, <asp:dropdownlist runat=server>, 和 <asp:button runat=server>。在运行时刻,这些服务器控件自动生成HTML内容。

C# Intro4.aspx

重要提示:在传递到服务器端的循环往返(Rount Trips-----我不知道如何准确的翻译这个词汇,他的意思是从客户端提交数据到服务器,然后从服务器返回数据的过程)过程中,这些服务器控件自动保持任何客户端输入的值(它代替了循环往返的时候,表单字段保存在<input type="hidden">中的做法)。另外请注意,ASP.NET中保持数据不需要任何客户端的脚本支持除了支持标准的html输入控件之外,ASP.NET允许开发者在页面中使用更丰富的定制控件。例如,下面的例子演示了如何在页面上使用<asp:adrotator>控件,实现动态轮显广告C# Intro5.aspx