active server pages+ (asp+) 框架,也称为 web 窗体,可用来创建可编程的网页,以便将它们作为总体 web 应用程序的组成部分。web 窗体在以下方面简化了 web 应用程序的开发:
- 在服务器上提供了基于事件的编程模式,这类似于像 microsoft visual basic® 开发系统这样的基于 microsoft® win32® 的开发工具中所使用的、基于表单的开发模式。
- 允许 html 标记与应用程序逻辑的完全分离。逻辑,即页面后的代码,是经过编译的,因而其性能得到了大大提高。此外,您可以使用任何一种 microsoft® .net 语言来编写代码,从而使您能更充分地发挥现有的技能。
- 实现了丰富的设计时体验。visual studio® .net 为创建和管理 web 窗体提供了快速应用程序开发(rad)功能。
- 支持种类丰富、功能强大的控件和 .net 组件组,提供了统一的、对类型安全的对象模型。此外,该框架还通过定制组件或第三方组件使自身自然适应扩展性的需要。
本文将重点说明已实现为该框架的组成部分的服务器控件。asp+ 的其它方面,如缓存、安全、配置和定制,也同样重要。对这些问题的详细说明,可以在 .net sdk 文档的“开发人员指南”一节中找到。
服务器控件用于创建您的 web 应用程序的用户界面。它们可以生成适用于目标设备或浏览器的任何输出。在 asp+ 框架中有两组服务器控件:“html 控件”和“web 控件”,这两组控件都能提供用于 web 浏览器的 html。除了提供 html 之外,它们还封装有在往返行程中保留状态以及为各种客户机事件产生服务器端事件的机制。同时,它们还能用作复合控件的组成部分。
下面的各节内容将详细说明这两组控件。
asp+ 框架中的第一组控件称为 html 控件。这些控件位于 system.web.ui.htmlcontrols 命名空间中,是从 htmlcontrol 基类中直接或间接派生出来的。图 1 说明了 html 控件的类层次结构。

图 1. asp+ html 控件
对于任何包含 runat="server" 属性的标记,都会为其生成 html 控件的实例。例如,下面的 html 可创建一个名为“textbox1”的 htmlinputtext 控件的实例:
<input type="text" runat="server" id="textbox1" value="some text">
下表中列出了 html 控件以及对应的 html 标记。
表 1. html 控件标记
| 控件 | 对应的标记 |
| htmlanchor | <a> |
| htmlbutton | <button> |
| htmlselect | <select> |
| htmltextarea | <textarea> |
| htmlinputbutton | <input type="button"> |
| htmlinputcheckbox | <input type="check"> |
| htmlinputradiobutton | <input type="radio"> |
| htmlinputtext | <input type="text"> 和 <input type="password"> |
| htmlinputhidden | <input type="hidden"> |
| htmlinputimage | <input type="image"> |
| htmlinputfile | <input type="file"> |
| htmlform | <form> |
| htmlimage | <img> |
| htmltable | <table> |
| htmltablerow | <tr> |
| htmltablecell | <td> |
| htmlgenericcontrol | 任何其它没有对应控件的标记,如 <span>、<div> 等。 |