Seguramente el hecho de que se declaren comenzando con "< asp:" es suficiente para inferir que son controles de servidor? ¿O solo se incluye para completar (por lo que se parecen a la declaración de control del servidor de < input runat = "server", por ejemplo). ¿O hay alguna razón especial?¿Por qué las declaraciones de control del servidor ASP.Net requieren el atributo runat = "server"?
Siempre me molesta que el compilador me diga que me lo he perdido cuando lo hago accidentalmente. Algo así como el pensamiento detrás de "var": si el compilador sabe qué es ... ¿por qué molestarse en esperar que lo diga?
Échale un vistazo http://stackoverflow.com/questions/304290/asp-net-why-runatserver – Kaz