Asp.net
何時在普通 HTML 上使用 runat=‘server’
在標準 HTML 元素而不是真正的 ASP.NET 控制項上使用 runat=“server” 是否合適?我可以完全控制設置普通元素的 html/文本,那麼為什麼我不使用它來代替“笨重”的 ASP.NET WebForms 控制項呢?
如果一個比另一個更好,我想知道一些興趣點:
- 性能差異
- 功能差異
- 其他區別不那麼明顯?
範例差異:
<asp:Literal ID="mySpecialHtml" runat="server" /> <div id="mySpecialHtml" runat="server" />
兩者都是 ASP.NET 伺服器控制項。與 HTML 元素對應的元素在
System.Web.UI.HtmlControls命名空間中,Web 控制項在System.Web.UI.WebControls命名空間中。HTML 控制項更輕量級,並且與 HTML 元素完全對應,而 Web 控制項具有更多功能,可以根據瀏覽器功能和控制項設置呈現為不同的 HTML 元素。
HTML 控制項呈現為單個 HTML 元素,而 Web 控制項呈現為零個或多個 HTML 元素。例如,
Literal控制項不呈現為元素,它只輸出其文本。還有其他控制項本身不呈現任何元素,例如Repeater和PlaceHolder控制項。另一方面,CheckBoxList例如,控制項被呈現為幾個 HTML 元素,一個table作為容器,以及input其中每個複選框的元素。使用不同元素呈現的控制項的一個範例是
TextBox控制項,它將根據其屬性呈現為元素input或元素。textarea``TextModeWeb 控制項具有更多功能,但也使用更多資源。它們具有更多屬性並支持主題和數據綁定等內容。許多 Web 控制項將數據放入 中
ViewState,作為頁面的一部分發送。如果不小心,ViewState可能會變得很大,並影響頁面的載入時間。