Asp.net

何時在普通 HTML 上使用 runat=‘server’

  • July 12, 2012

在標準 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控制項不呈現為元素,它只輸出其文本。還有其他控制項本身不呈現任何元素,例如RepeaterPlaceHolder控制項。另一方面,CheckBoxList例如,控制項被呈現為幾個 HTML 元素,一個table作為容器,以及input其中每個複選框的元素。

使用不同元素呈現的控制項的一個範例是TextBox控制項,它將根據其屬性呈現為元素input或元素。textarea``TextMode

Web 控制項具有更多功能,但也使用更多資源。它們具有更多屬性並支持主題和數據綁定等內容。許多 Web 控制項將數據放入 中ViewState,作為頁面的一部分發送。如果不小心,ViewState可能會變得很大,並影響頁面的載入時間。

引用自:https://stackoverflow.com/questions/11460121