2008-12-29 26 views
6

Estoy comparando las dos clases base de cada espacio de nombres y estoy un poco confundido.Cuál es la diferencia entre System.Web.UI.HtmlControls y System.Web.UI.WebControls

System.Web.UI.WebControls.WebControl 
System.Web.UI.HtmlControls.HtmlControl 

Veo una pequeña diferencia entre los dos. Por ejemplo, HtmlControl tiene muchas menos propiedades, mientras que WebControl tiene muchas propiedades, como la propiedad CssClass. Aparte de las propiedades adicionales, la clase base WebControl parece ser más robusta en la forma en que maneja la representación.

¿Por qué la necesidad de tener dos espacios de nombres y dos conjuntos de controles casi idénticos?

Respuesta

8

Los controles en System.Web.UI.HtmlControls son solo una capa delgada alrededor de los controles HTML reales. System.Web.UI.WebControls.WebControl son los controles estándar de ASP.NET.

Para ampliar esto un poco:

El System.Web.UI.HtmlControls espacio de nombres contiene clases que permiten que le permite crear controles de servidor HTML en una página Web Forms. Los controles del servidor HTML se ejecutan en el servidor y se asignan directamente a las etiquetas HTML estándar compatibles con la mayoría de los navegadores . Esto le permite controlar programáticamente los elementos HTML en una página de formularios web.

+0

Pero si tengo un System.Web.UI.WebControl casi idéntico, ¿por qué no usar ese en su lugar? ¿El rendimiento es realmente una gran diferencia? –

+0

Me quedaría con los WebControls a menos que tenga algún motivo específico para usar HtmlControls. – Powerlord

0

RadioButtonList es un WebControl de ASP.NET. Pero no existe ese control en HTML: en HTML, tendría un grupo de controles INPUT con tipo "radio" que comparten el mismo valor de atributo de nombre.

Por lo tanto, los WebControls son controles ASP.NET que se procesan en los controles HTML. HtmlControl es la representación real de un control HTML en una página.

+0

¿Voy a suponer que te refieres con el tipo de radio? – Powerlord

+0

@R. Bemrose, gracias. :) Olvidé el control que utilicé como ejemplo. – Kon

0

De w3schools:

como HTML controles de servidor, servidor Web controles también se crean en el servidor y requieren un atributo = runat "servidor" para trabajar. Sin embargo, los controles del servidor web no se asocian necesariamente con a ningún elemento HTML existente y pueden representar más elementos complejos .

Los controles web suelen ser un poco más potentes, pero también requieren un poco más de recursos para generar dinámicamente el HTML correspondiente.

Cuestiones relacionadas