我们知道,ASP.NET的Web窗体新增了对服务器端控件的支持,其特征是在控件的HTML标记内加入了runat="server"属性。拥有这个标记的控件,其实例将在服务器端生成,由.NET框架负责转换为普通的HTML标记并输出至客户端。这个转换的过程是ASP.NET一个极为重要的基础。为什么呢?
熟悉HTML开发的朋友应该非常了解编写动态网页所需要的控件(FORM、INPUT……)。而ASP.NET为我们提供了更为丰富的用户界面交互元素——服务器端控件(简单的有Button、Label,复杂的包括DataGrid等数据控件)——可以说,它们是ASP.NET强大特性最直观的部分。
你可能会有一个疑问:服务器端控件是如何在客户端运行的呢?HTML规范中并没有它们的影子,然而客户端却并不需要特殊的环境就能正常浏览ASP.NET页面。这是如何做到的?
转换——就好像两国元首之间的交流需要翻译,要让服务器端的控件被客户端正常识别、运行,需要一个转换过程——这就是.NET Framework存在的理由。
.NET Framework为控件做的转换工作非常复杂,但是只要我们了解其中的规律,就能为我们所用。