我正在比较每个命名空间的两个基类,我有点困惑。
System.Web.UI.WebControls.WebControl
System.Web.UI.HtmlControls.HtmlControl
我看到两者之间的差别很小。例如,HtmlControl
具有更少的属性,而WebControl
具有许多属性,如CssClass属性。除了额外的属性之外,WebControl
基类在处理渲染方面似乎更加健壮。
为什么需要有两个名称空间和两组几乎相同的控件?
答案 0 :(得分:8)
System.Web.UI.HtmlControls中的控件只是实际HTML控件的一个薄包装。 System.Web.UI.WebControls.WebControl是您的标准ASP.NET控件。
稍微扩展一下:
System.Web.UI.HtmlControls namespace包含允许的类 您要创建HTML服务器控件 Web窗体页面。 HTML服务器控件 在服务器上运行并直接映射到 大多数人支持标准HTML标记 浏览器。这允许你 以编程方式控制HTML Web窗体页面上的元素。
答案 1 :(得分:0)
RadioButtonList是一个ASP.NET WebControl。但是HTML中不存在这样的控件 - 在HTML中你有一组INPUT控件,类型为“radio”,它们共享相同的名称属性值。
因此,WebControl是呈现给HTML控件的ASP.NET控件。 HtmlControl是页面上HTML控件的实际表示。
答案 2 :(得分:0)
来自w3schools:
与HTML服务器控件一样,Web服务器 控件也是在。上创建的 服务器,他们需要一个 runat =“server”属性工作。 但是,Web服务器控件没有 必须映射到任何现有的HTML 元素,它们可能代表更多 复杂的元素。
Web控件通常功能更强大,但还需要更多资源来动态生成相应的HTML。