我已经阅读了这篇文章,其中解释了在创建自定义控件时何时选择 Web 控件与控件,但这还不够。当自定义控件都向 UI 提供内容时,我已经看到自定义控件继承自其中任何一个。
http://msdn.microsoft.com/en-us/library/yhzc935f.aspx
“如果您的控件在客户端呈现用户界面 (UI) 元素或任何其他可见元素,则应从 System.Web.UI.WebControls..::.WebControl(或派生类)派生控件。如果您的控件呈现在浏览器中不可见的元素,例如隐藏元素或元元素,从 System.Web.UI..::.Control 派生您的控件。WebControl 类从 Control 派生并添加与样式相关的属性,例如作为 Font、ForeColor 和 BackColor。此外,从 WebControl 派生的控件参与 ASP.NET 的主题功能,而无需您进行任何额外的工作。"
所以使用 WebControl 的唯一原因是如果您想使用它们的样式功能?我只是要用字符串生成器最终输出字符串,所以我不在乎那些东西。我更喜欢直接使用无表格设计和字符串来形成我的控件呈现的 HTML。