c# - una - paginas web asp.net ejemplos
Los controles ASP.NET no se pueden referenciar en código subyacente en Visual Studio 2008 (16)
Ok, entonces, mi estudio visual está roto. Digo esto NO prematuramente, ya que fue mi primera respuesta para ver dónde había metido la pata en mi código. Cuando agrego controles a la página, no puedo hacer referencia a todos ellos en el código subyacente. Algunos de ellos puedo, parece que los primeros que pongo en una página funcionan, luego simplemente se detiene.
Primero pensé que podría ser el tipo de control ya que inicialmente estaba tratando de hacer referencia a un repetidor dentro de un panel de actualización. Sé que estoy haciendo referencia al código detrás en mi página aspx. Pero en caso de que fuera un error de mi parte, comencé a recrear la página desde cero y esta vez obtuve algunos controles más antes de que VS dejara de reconocer mis controles.
Después de crear mi página dos veces y atascarme, pensé que tal vez todavía era el tipo de controles. Creé una nueva página y simplemente lancé algunas etiquetas sobre ella. Sin dados, la compilación falla al hacer referencia al control desde el código subyacente.
En una nota posiblemente no relacionada cuando cambio al temido modo de "diseño" de las páginas aspx, VS 2008 se equivoca y se reinicia.
Ya le he puesto un boleto de problema a Microsoft. Desinstalé todos los complementos, reinstalé Visual Studio.
Cualquier persona que quiera ver mi código solo preguntará, pero estoy usando el estudio visual directo WYSIWYG "nueva página aspx" nada lujoso.
Dudo que alguien haya topado con esto, ¿pero usted?
¿Alguien ha tenido éxito al solucionar estos problemas con Microsoft? ¿Alguna forma de agilizar este boleto sin pagar? He estado hablando con un representante de Microsoft durante días sin suerte todavía y estoy muerto en el agua.
Gracias.
Jon Limjap: Edité el título para que fuera claro y descriptivo y para asegurarme de que nadie lo considere ofensivo. "Foo-barrado" no constituye exactamente un título de pregunta apropiado, aunque su pregunta es claramente válida.
¿El control que intentas hacer referencia está dentro del repetidor?
Si es así, debe buscarlos utilizando el método FindControl.
Por ejemplo para:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server">stest</asp:LinkButton>
</ItemTemplate>
</asp:Repeater>
Debería hacer esto para hacer referencia a esto:
LinkButton lb = Repeater1.FindControl("LinkButton1");
También encontrará archivos temporales .net que se pueden eliminar de forma segura aquí: C: / WINDOWS / Microsoft.NET / Framework / v2.0.50727 / Archivos temporales ASP.NET
La corrección anterior (eliminar los archivos temporales) no funcionó para mí. Tuve que eliminar el archivo PageName.aspx.designer.cs
, luego hacer clic derecho en mi página y elegir "Convertir a aplicación web" en el menú contextual.
Cuando Visual Studio intentó reconstruir el archivo de diseñador, se encontró (y me reveló) el origen del problema. En mi caso, VS había perdido una referencia a una DLL que necesitaba uno de los controles en mi página, así que tuve que limpiar las carpetas bin generadas en mi proyecto.
En mi caso, estaba trabajando con un viejo código de sitio web, que convertí en una solución VS2008. Me encontré con este mismo problema.
Para mí, la solución fue hacer clic con el botón derecho en el proyecto de sitios web en el Explorador de soluciones y seleccionar Convertir a aplicación web. Esto creó archivos designer.cs
para todas las páginas, que aún no tenían estos archivos.
En mi caso, no se detectaron nuevos controles asp que agregué a un existente.
Lo que funcionó para mí fue forzar una recompilación al renombrar un control existente para romper la compilación, por ejemplo: cambiando <asp:TextBox ID="txtTitle" runat="server" />
a <asp:TextBox ID="txtTitle2" runat="server" />
Cuando corregí la ID y reconstruí, se generó un nuevo archivo de diseñador con la ID corregida y los nuevos controles.
intente borrar su caché VS local. encuentra tu proyecto y elimina la carpeta. la carpeta es creada por VS por qué razón honestamente no entiendo. pero he tenido varias ocasiones en las que limpiarlo y reconstruirlo soluciona las cosas ... espero que esto sea todo lo que necesitas también.
aquí
%Temp%/VWDWebCache
y posiblemente aquí
%LocalAppData%/Microsoft/WebsiteCache
Observé que esto sucede porque falta el archivo .designer.cs. Después de solucionar este problema en mi caso (básicamente copié estos archivos del proyecto web VS 2005 al proyecto VS 2010): Haga clic con el botón derecho en el archivo .aspx y seleccione el menú "Convertir al sitio web", esto creará el archivo .designer.cs y entonces debería funcionar el archivo.
Revisa tu archivo aspx en caso de errores, una vez que me haya enfrentado con ese problema
Tuve que pasar esto unas cuantas veces y sucedió nuevamente hoy por una nueva razón. Normalmente ejecuto mi proyecto a través de IIS, pero necesito ejecutarlo localmente para depurarlo. Normalmente corro en el puerto 80 en IIS y 81 en depuración, pero tenía algunas configuraciones en el archivo web.config que usaba 80, así que simplemente eliminé el sitio en IIS y cambié el sitio web al puerto 80 en la configuración del proyecto. Por alguna razón, esto arruinó todo y creó el problema descrito en el PO. Empecé a probar cosas una a una, incluyendo todos los consejos mencionados aquí, pero cambiar el puerto a 81 en la configuración del proyecto es lo que terminó funcionando.
Para mí, eliminar / cambiar el nombre de los archivos en la siguiente ubicación funcionó:
C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/myvirtualwebsite/e331e0a9
Haga clic derecho en el nombre del proyecto y seleccione "Limpiar". luego, revisa tu carpeta bin si le queda alguna dll. si es así, elimínelo. Eso es. solo reconstruye y todo funcionará bien.
Solo para agregar mis dos centavos con este problema.
Lo único de todo lo anterior que funcionó para mí fue "Limpiar" y luego eliminar todo lo que quedaba en la carpeta bin. Rebuild y todos los controles comenzaron a funcionar en ese momento.
FYI ... Estaba teniendo este problema también y terminé solucionándolo al eliminar el archivo existente .designer.vb, haciendo clic derecho en el proyecto y seleccionando Convert to Web Application. Luego mostró el verdadero "error" que causaba que la GUI se cagara. Resultó que había usado el mismo nombre para otras 2 etiquetas, pero eso no se mostraba en la ventana de la lista de errores. Una vez que cambié el nombre de una de las otras dos etiquetas, funcionó bien y dejó de darme problemas.
Esto también puede suceder si la propiedad Inherits
en la página fuente no coincide con el nombre de la clase en el código subyacente. En términos generales, esto probablemente solo suceda si copia / pega un archivo .ascx / .aspx y olvida actualizarlo.
Ejemplo:
<%@ Control AutoEventWireup="false" CodeBehind="myControl.ascx.vb" Inherits="myProject.myWrongControl" %>
El código detrás de la clase:
Partial Public Class myControl
Tienes que agregar
runat="server"
a cada elemento en tu página.
no podemos cambiar el código cuando la aplicación se está ejecutando. Para hacerlo, primero haga clic en el botón de detención en la parte superior que detendrá su aplicación. Ahora haga clic en el botón en modo de diseño, insertará el código en el archivo .aspx.cs, luego escribe el código en él