我們知道,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為控件做的轉換工作非常復雜,但是只要我們了解其中的規律,就能為我們所用。