WebControl vs HtmlControl.Cos和专业人士在Web表单应用程序中使用它们

Kam*_*rey 5 asp.net webforms

在Web表单应用程序中,对于服务器代码,何时使用WebControls以及何时使用HtmlControls?例如,如果我想在span标签内写一些文本,我应该使用:

<span id="someid" runat="server"></span>
Run Code Online (Sandbox Code Playgroud)

要么

<asp:Label id="someid" runat="server"></asp:Label>
Run Code Online (Sandbox Code Playgroud)

Skl*_*vvz 7

主要区别在于HtmlControls仅提供在页面循环期间寻址页面的一部分的方式,而WebControls是有状态的.

在您的示例中,如果为Label文本指定一些值,它将使其保持在PostBacks之间.

根据我的经验,如果可以的话,使用HtmlControl会好得多,它们更轻巧,并且它们不会填满你的ViewState.当您需要WebControl为有状态时,请使用它们.

例如,您可能需要使用一个标签的页面标题,因为你只能赋值一次(通常在Page_OnLoad一个内部if (!IsPostBack)块).您可能希望使用HTML范围来提供一些状态反馈(例如,在每次回发时更新状态).

  • 我不太确定HTMLControls不是"有状态的".如果在运行时期间填充SPAN的InnerText一次,它将在后续回发中保留. (2认同)