c# - visual - El nombre ''controlname'' no existe en el contexto actual
getting started with asp net 4.5 web forms and visual studio 2013 (17)
Tengo una aplicación web en la que estoy trabajando (ASP.NET2.0 con C #, usando VS2005). Todo estaba funcionando bien, y de repente me sale el error:
Error 1 The name ''Label1'' does not exist in the current context
y 43 más del tipo para cada vez que utilicé un control en mi código detrás de la página.
Esto solo ocurre en 1 página. Y es como si el código subyacente no reconociera los controles. Otra cosa interesante es que el intellisense tampoco está recogiendo ninguno de los controles.
Intenté limpiar el archivo de la solución, eliminar el archivo obj, excluir los archivos del proyecto y luego volver a agregarlos, cerrar VS y reiniciarlo, e incluso reiniciar mi computadora, pero ninguno de ellos funcionó.
1) Compruebe la propiedad CodeFile en <% @ Page CodeFile = "filename.aspx.cs"%> en la página "filename.aspx", su código detrás del nombre del archivo y el nombre de esta propiedad debe ser el mismo.
2) se puede perder runat = "server" en el código
Además, asegúrese de no tener archivos que accidentalmente intenten heredar o definir la misma clase (parcial) que otros archivos. Tenga en cuenta que estos archivos pueden parecer ajenos a los archivos donde apareció realmente el error.
Compruebe su código detrás del nombre del archivo y hereda la propiedad en la directiva @Page, asegúrese de que ambos coincidan.
En mi caso, cuando creé el formulario web, recibí el nombre de WebForm1.aspx y sus nombres respectivos (WebForm1). Carta, renombré eso a algo más. Cambié el nombre manualmente en casi todos los lugares, pero un lugar en el archivo del diseñador todavía lo mostraba como ''WebForm1''.
Cambié eso también y me deshice de este error.
La opción de solución n. ° 2 ofrecida arriba funciona para aplicaciones de formularios de Windows y no para aplicaciones web aspx. Obtuve un error similar en la aplicación web, resolví esto al eliminar un archivo donde tenía un control de usuario con el mismo nombre, este archivo aspx era en realidad un archivo de copia de seguridad y no se hacía referencia en ningún lugar del proceso, pero aún así causaba el error porque el nombre del control de usuario registrado en el archivo de copia de seguridad se denominó exactamente igual en el archivo aspx al que se hizo referencia en el flujo del proceso. Así que eliminé el archivo de copia de seguridad y la solución creada, la creación se realizó correctamente.
Espero que esto ayude a alguien en un escenario similar.
Vijaya Laxmi.
Lo arreglé en mi proyecto haciendo una copia de seguridad de los archivos actuales (así que todavía tenía mi código), borré el aspx actual (y las páginas secundarias), hice uno nuevo y copié el contenido de los archivos de respaldo en los nuevos archivos.
Me encontré con este mismo error, excepto que era un error de WPF. Estaba reorganizando proyectos y tenía un control definido de esta manera:
<local:CustomControl Name="Custom" />
En mi código detrás intenté usar Custom.Blah, pero obtuve el error:
The name ''Custom'' does not exist in the current context
El truco para mí fue cambiar mi control en Xaml a esto:
<local:CustomControl x:Name="Custom" />
Espero que esto ayude a alguien por ahí!
Me encontré con este mismo problema. Aparentemente, no debe llamar a una clase en el BLL el mismo nombre que uno de los archivos .aspx / .aspx.cs. Pensé que no estarían en el mismo ámbito, etc. pero se metió demasiado con el funcionamiento interno de Visual Studio. Estoy un poco sorprendido de que no haya algo que te impida hacer esto si va a producir ese tipo de error. De todos modos, simplemente elimine los archivos .aspx / .aspx.cs y reconstruya su proyecto. Luego tráigalos con otro nombre. Puedes copiar / pegar tu código en otro editor si no quieres volver a escribirlo todo.
Recibo el mismo error después de hacer cambios con mi contexto de datos. Pero encuentro algo con lo que no estoy familiarizado. Me acostumbro a publicar mis archivos de forma manual. Normalmente, cuando lo hago, no aparece la carpeta App_Code en la carpeta de publicación. Bu, comencé a utilizar la publicación VS 12, que publica directamente con su ayuda al servidor web. Y luego me aparece el error de ser una aplicación precompilada. Luego borro la carpeta app_code que funcionó. Pero luego me dio el error de contexto de datos que está recibiendo. Así que simplemente borré todos los archivos y ejecuté la publicación nuevamente sin restricciones de archivos (cada carpeta y archivo será publicado) luego funcionó a las mil maravillas.
Sé que esta es una pregunta antigua, pero tuve un problema similar y quería publicar mi solución en caso de que pudiera beneficiar a otra persona. Encontré el problema mientras aprendía a usar:
- ASP.NET 3.5
- DO#
- VS2008
Estaba intentando crear una página compatible con AJAX (consulte un tutorial sobre el uso del objeto ScriptManager si no está familiarizado con esto). Traté de acceder a los elementos HTML en la página a través del código C # y recibí un error que indicaba que el identificador para el valor de ID 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 la Caja de herramientas en el IDE de Visual Studio no incluyen automáticamente este valor cuando se agregan a la página.
2. Regenerar el archivo C # generado automáticamente:
- En el Explorador de soluciones, en el archivo aspx debe haber dos archivos: * .aspx.cs y * .aspx.designer.cs. El archivo de diseñador se genera automáticamente.
- Elimine el archivo * .aspx.designer.cs existente. Asegúrese de eliminar solo el archivo del diseñador . No elimine el otro, porque contiene su código C # para la página.
- Haga clic derecho en el archivo aspx principal. En el menú emergente, seleccione Convertir a aplicación web .
Ahora el elemento debe estar accesible en el archivo de código C #.
Tuve el mismo mensaje de error. Mi código no tenía errores y funcionaba perfectamente, luego decidí volver y cambiar el nombre de uno de mis botones y de repente me dio un error de compilación acompañado de ese subrayado ondulante azul que decía que el control no existe en el contexto actual ...
Resulta que Visual Studio estaba siendo tonto, ya que el problema estaba relacionado con los archivos de copia de seguridad que había hecho de mi clase aspx.cs. Los eliminé y los errores desaparecieron.
Tuve el mismo problema desde que intentaba reproducir el archivo aspx de un proyecto de Visual Studio 2010, por lo que los controles tenían la propiedad clientidmode = "Static". Cuando esto se elimina, se resuelve.
Tuve el mismo problema, mi problema era no tener espacio entre dos atributos "
AutoGenerateColumns="False"DataKeyNames="ProductID"
en lugar de
AutoGenerateColumns="False" DataKeyNames="ProductID"
Tuve un problema similar cuando retoqué con un repetidor después de convertirlo de una lista de datos.
El problema fue que accidentalmente uní 2 atributos cuando eliminé uno innecesario.
<asp:Repeater runat="server" ID="ClientsRP"DataSourceID="ClientsDS">
.
.
.
</asp:Repeater>
Y esto evitó la generación del repetidor en el archivo de diseño.
Yo tuve el mismo problema. Resultó que tenía tanto "MyPage.aspx" como "Copy of MyPage.aspx" en mi proyecto.
este error a menudo ocurre cuando se omite runat="server"
.
excluya cualquier otra página que haga referencia al mismo archivo de código subyacente, por ejemplo, una página anterior que copió y pegó.