Ben*_*nny 22 html asp.net webforms
在标准HTML元素而不是真正的ASP.NET控件上使用runat ="server"是否合适?我可以完全控制设置普通元素的html /文本,那么为什么我不使用它而不是"笨重"的ASP.NET WebForms控件呢?
如果一个比另一个好,我想知道一些兴趣点:
一个示例差异:
<asp:Literal ID="mySpecialHtml" runat="server" />
<div id="mySpecialHtml" runat="server" />
Run Code Online (Sandbox Code Playgroud)
Guf*_*ffa 18
两者都是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元素TextMode.
Web控件具有更多功能,但也使用更多资源.它们具有更多属性并支持主题和数据绑定等内容.许多Web控件将数据放入其中ViewState,该数据作为页面的一部分发送.如果你不小心,ViewState可能会变得非常大,并影响页面的加载时间.
jru*_*ell 11
我使用服务器html控件的唯一原因是我需要编写自己的html的灵活性,但仍需要在代码后面访问它的属性.
<div id="mySpecialHtml" runat="server" />
Run Code Online (Sandbox Code Playgroud)
代码背后:
mySpecialHtml.InnerHtml = "something else";
Run Code Online (Sandbox Code Playgroud)
ASP.NET 解析器将带有 runat="server" 标记的标准 html 元素解释为 html 服务器控件。例子:
<a runat="server"></a>
Run Code Online (Sandbox Code Playgroud)
被解释为
<asp:HtmlAnchor runat="server"></asp:HtmlAnchor>
Run Code Online (Sandbox Code Playgroud)
因此,请注意,如果您使用 runat="server",则您将使用相应的 HTML Server 控件。
另外,ASP.NET包含一组Web服务器控件,即HyperLink控件,它提供更多的功能、更多的属性、事件等,但在某些情况下可能会比较慢。
| 归档时间: |
|
| 查看次数: |
33263 次 |
| 最近记录: |