是否曾经适合于标准的HTML元素,而不是一个真正的ASP.NET控件上使用RUNAT =“服务器”?我有超过设定标准元素的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元素。例如,文字控制不会被渲染为一个元素,它只输出其文本。还有其他控件不会自动渲染任何元素,如Repeater和PlaceHolder控件。另一方面,例如CheckBoxList控件被渲染为几个HTML元素,一个表作为容器,以及每个复选框的输入元素。
使用不同元素呈现的控件的示例是TextBox控件,它将根据其TextMode属性将其呈现为输入或textarea元素。
Web控件具有更多的功能,但也使用更多的资源。他们有更多的属性和支持的东西,如主题和数据绑定。许多Web控件将数据放在ViewState中,作为页面的一部分发送。如果您不小心,ViewState可能会变得相当大,并影响页面的加载时间。