ASP.NET 開發常遇到四個易混淆概念:HTML 標記、HTML 控制項、Web 控制項、ASP.NET 伺服器控制項。釐清它們的關係是掌握 ASP.NET 程式模型的基礎。
傳統 HTML 元素,如 <input id="Button1" type="button" value="button" />。純客戶端解析,伺服器端無法直接控制屬性、方法或事件,需配合 JavaScript 操作。
HTML 標記加上 runat="server":<input id="Button1" type="button" value="button" runat="server" />。
System.Web.UI.HtmlControls標準語法:<asp:Button ID="Button2" runat="server" Text="Button" />
System.Web.UI.WebControlsText 等通用屬性| 控制項類型 | 語法範例 | 點擊行為 |
|---|---|---|
| HTML 標記 | <input type="button" ... /> | 純客戶端,無回傳 |
| HTML 控制項 (無事件) | <input runat="server" /> | 無回傳 (未定義伺服器事件) |
| HTML 控制項 (有事件) | <input runat="server" onserverclick="test" /> | 回傳伺服器,執行 test(object sender, EventArgs e) |
| Web 伺服器控制項 | <asp:Button runat="server" /> | 預設回傳伺服器 (即使未定義 Click) |
本質差異:HTML 控制項事件由頁面觸發;Web 控制項由頁面將表單回傳伺服器處理。