El nombre 'controlname' no existe en el contexto actual

El nombre 'controlname' no existe en el contexto actual

Sé que esta es una vieja pregunta, pero tuve un problema similar y quería publicar mi solución en caso de que pudiera beneficiar a alguien más. Encontré el problema mientras aprendía a usar:

  • ASP.NET 3.5
  • C#
  • VS2008

Estaba tratando de crear una página habilitada para AJAX (consulte un tutorial sobre el uso del objeto ScriptManager si no está familiarizado con esto). Intenté acceder a los elementos HTML de la página a través del código C# y recibí un error que indicaba que el identificador del valor de ID de HTML "no existe en el contexto actual".

Para resolverlo, tuve que hacer lo siguiente:

1. Ejecutar en el servidor

Para acceder al elemento HTML como una variable en el código C#, se debe colocar el siguiente valor en la etiqueta del elemento HTML en el archivo aspx:

runat="server"

Algunos objetos en el cuadro de herramientas en el IDE de Visual Studio no incluyen automáticamente este valor cuando se agregan a la página.

2. Vuelva a generar el archivo C# generado automáticamente:

  • En el Explorador de soluciones, debajo del archivo aspx debe haber dos archivos:*.aspx.cs y *.aspx.designer.cs. El archivo del diseñador se genera automáticamente.
  • Elimine el archivo *.aspx.designer.cs existente. Asegúrate de eliminar solo al diseñador expediente. No elimine el otro, porque contiene su código C# para la página.
  • Haga clic con el botón derecho en el archivo aspx principal. En el menú emergente, seleccione Convertir a aplicación web .

Ahora el elemento debería estar accesible en el archivo de código C#.


Verifique su código detrás del nombre del archivo y la propiedad Inherits en la directiva @Page, asegúrese de que ambos coincidan.


excluye cualquier otra página que haga referencia al mismo archivo de código subyacente, por ejemplo, una página anterior que hayas copiado y pegado.