2011-06-28 35 views
17

He agregado un nuevo control a mis archivos aspx y noté que no solo no se agregaba el nuevo control al archivo de diseñador sino que también faltaban algunos otros controles que fueron agregados por otros miembros del equipo. Intenté eliminar el archivo designer.cs y usar "Convertir a aplicación web" sin éxito. Algunas otras cosas que he intentado han sido excluir el aspx del proyecto, compilarlo y luego volver a incluirlo sin éxito. También ingresé manualmente en un control que faltaba en el diseñador en el diseñador. Cuando corro, aparece un error que dice que el control no está definido, aunque realmente lo esté, y que debería verificar si falta una directiva.Designer.cs no se actualiza cuando se agregaron controles nuevos a .aspx

El primer control que agregué fue copiar y pegar desde un control similar e hice los cambios necesarios. Pero también intenté crear el control manualmente con los mismos resultados.

¿Alguna idea?

+0

qué versión de Visual Studio está usted ¿utilizando? –

+1

¡¿No lo odias cuando se escanea la magia de Visual Studio ?! – ChaosPandion

+0

Visual Studio 2010 .NET Framework 4 – user819357

Respuesta

9

Cierre Visual Studio y luego elimine archivos temporales ASP.NET de C:\Windows\Microsoft.Net\Framework\Your_.Net_Version\ProjectName Elimine la carpeta ProjectName y reinicie Visual Studio. Tuve un problema similar hace un tiempo y fue resuelto por estas acciones.

Si usa IIS, es posible que tenga que detener el servidor/sitio para poder eliminar los archivos temporales.

+1

según mi punto de vista, su solución aceptada ... –

+1

esto fue lo único que funcionó para visual studio 2013 – Mike

3

Un error simple/estúpido que también da como resultado síntomas similares es si copia los archivos aspx y aspx.cs y los renombra, pero no actualiza las referencias dentro del archivo.

Me encontré con esta pregunta tratando de encontrar el directorio temp asp.net, pero borrar eso no sirvió. Luego me di cuenta de que no actualicé CodeFile="Page.ascx.cs" después de haber copiado los archivos para crear una nueva versión modificada de la página. Luego, intenté agregar un control y hacer referencia a él en PageModified.ascx.cs, pero seguí diciendo que no existía.

+0

Bingo. Todavía estaba haciendo referencia al archivo desde el que copié. – goodeye

13

He sufrido este problema en mi trabajo.

Lo más seguro es volver a generar el archivo de .designer.cs y here es la solución:

  • Busque el corrompido aspx.designer.cs archivo a través del Explorador de soluciones
  • sólo el Eliminar designer.cs archivo de su proyecto
  • Haga clic con el botón derecho en su archivo aspx principal y seleccione "Convertir a aplicación web".
+0

Funcionó. ¡Gracias! Debo añadir que seguí este procedimiento en VS 2012. ¿Por qué sigo trabajando en aplicaciones webforms? Esa es la verdadera pregunta. – MrBoJangles

+0

esto no funcionó para mí en vs2013 – Rama

+5

En VS 2013, la opción inexplicablemente se ha movido al menú desplegable Proyecto en la barra de menú. [enlace] (http://connect.microsoft.com/VisualStudio/feedback/details/806283/regenerate-the-designer-file-filename-aspx-designer-cs-in-visual-studio-2013) –

1

Esto también parece ocurrir cuando tiene un control de usuario que hace referencia a otro control de usuario en el mismo espacio de nombres. si mueve el control de usuario al que se hace referencia a un espacio de nombres diferente, el problema desaparece

1

En ocasiones puede haber errores en html como dos controles que tienen el mismo Id. También tenga cuidado con las etiquetas div y span. Esto impide que el diseñador se actualice. Para todo esto, verifique las advertencias en la lista de errores y corrígelas. Estás listo para ir. Esto resolvió mi problema.

2

hice esto en VS2012:

  1. Abra la page.aspx.designer.cs Encuentra una declaración de control de la mismo tipo de control (es decir LinkButton)
  2. copiarlo en el final del archivo (antes del final del corchete clase)
  3. Cambiar el nombre de la variable de control para que coincida con el nombre de su control .

Eso es todo.

0

Pude resolver el problema solo agregando manualmente la declaración de control dentro del código detrás del archivo. Cada vez que intenté regenerar el archivo design.cs, VS 2013 escribía las mismas líneas sin el control que faltaba.

La declaración debe agregarse en el código subyacente, NO en design.cs, porque se eliminará cada vez que se cambie .aspx.

Simplemente añadir la declaración igual que lo haría para cualquier otra variable, algo como esto:

protected MyNameSpace.MyControl ControlName; 
5

para reemplazar el archivo de diseño en VS 2013:

  1. eliminar el antiguo * .designer archivo .cs
  2. seleccione el archivo * .aspx
  3. Seleccione "Convertir a aplicación web" en la barra desplegable superior del proyecto
+0

Dijo que lo intentó y que no funcionó. – Mike

8

Prueba este

1.- Cambio CodeBehind="Name.aspx.cs" a CodeFile ="Name.aspx.cs"

2.- Construir

3.- Cambio CodeFile ="Name.aspx.cs"-CodeBehind ="Name.aspx.cs"

+0

Gracias. Eso fue fácil –

Cuestiones relacionadas