La pagina di progettazione non viene aggiornata quando i controlli vengono rilasciati nel modulo

StackOverflow https://stackoverflow.com/questions/500666

Domanda

(Era: il codice ASP.Net non trovava i controlli sulla pagina Web)

Sto usando VS 2008.

Non so quale interruttore segreto devo attivare o quale trip trip ho accidentalmente inciampato, ma l'ultima forma che ho creato nel mio progetto si sta comportando in modo molto grave: apparentemente il codebehind non è in grado di trovare alcun controllo che ho impostato nel modulo. Il file codebehind esiste, ma genera errori di compilazione su qualsiasi riferimento ai controlli dichiarati nel modulo.

L'indizio più ovvio è che nel markup del modulo, la prima riga è:

<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="UserSignature.aspx.vb"
  Inherits="EEI_App.UserSignature" %>

e Intellisense ha sottolineato l'intera prima riga, dandomi qualche stupido " impossibile caricare file o assembly " messaggio, che non riesce a trovare una DLL completamente non correlata che sia chiaramente e visibilmente nella mia cartella dell'app, con il riferimento impostato correttamente.

Inizialmente Intellisense sottolineava solo il " CodeBehind " impostazione, dicendo " File UserSignature.aspx.vb non trovato. " - quindi per qualche motivo è iniziato anche con questo altro messaggio sulla DLL.

Ogni altra forma nel mio progetto sta compilando e funzionando bene, e non ci sono differenze evidenti tra questa forma e qualsiasi altra forma.

Ho provato ad aprire e chiudere Visual Studio; Ho provato a riavviare - niente fa differenza. Ogni nuovo modulo che aggiungo al mio progetto non può comunicare con il proprio codebehind - dal momento della creazione del nuovo file, il markup mi dà il & Quot; Il file 'NewFile.aspx.vb' non è stato trovato & Quot; Errore!

Qualche idea?

Grazie


Penso che mi sto avvicinando al problema. @MatthewMartin, finora sei decisamente più caldo.

Sembra che form.aspx.designer.vb non venga aggiornato per qualche motivo quando trascino i controlli sul modulo. Non ho ancora idea del perché, ma almeno ci stiamo riscaldando!


OK, questo è sicuramente il problema ora, e ho rinominato la domanda per riflettere questo: il problema fondamentale è che il mio modulo form.aspx.designer.vb non viene aggiornato quando trascino i controlli sul modulo. Qualche idea almeno per una soluzione alternativa: come forzare l'aggiornamento del designer?

Grazie!

È stato utile?

Soluzione 5

OK, ho trovato la mia risposta:

Impegna tutto il codice di lavoro per il controllo del codice sorgente, elimina l'albero di sviluppo, ottieni l'ultima versione.

All'improvviso tutto funziona di nuovo. E ha anche risolto l'altro mio problema di oggi .

Darò credito per la risposta a chiunque riesca a capire quale interruttore segreto ho lanciato soffiando via il mio albero di sviluppo e ricominciando da capo ... :)

Altri suggerimenti

Puoi forzare la pagina aspx.vb.designer a rigenerarsi eliminando il testo dei controlli e incollandolo immediatamente in posizione.

Controlla anche che il codice dietro la pagina abbia una classe di UserSignature e uno spazio dei nomi di EDI_App. Inoltre, a seconda che si stia utilizzando un'applicazione Web / un progetto Web, lo spazio dei nomi predefinito potrebbe essere diverso. Puoi verificare creando un nuovo file e cercando e qual è il modello predefinito tra la direttiva della pagina e la dichiarazione del nome della classe nel codice dietro.

Infine, se si trattava di un'applicazione 1.1 convertita o di un'applicazione 2.0 in cui il codice dietro non dice

  

classe parziale

, allora sarai responsabile della dichiarazione di tutti i riferimenti di controllo.

L'hai rinominato? Modificato lo spazio dei nomi di base / progetto? In particolare, guarda EEI_App.UserSignature - è il nome corretto?

Per semplicità, considera di ricreare la pagina, copiare il markup ecc.

Prova questo:

<%@ Page Language="vb" AutoEventWireup="false" CodeFile="UserSignature.aspx.vb" Inherits="EEI_App.UserSignature" %>

È possibile che tu abbia perso il riferimento a System.Web (o un'altra dll importante, forse quella dll che hai citato)?
Di solito ottengo problemi simili quando provo a caricare una pagina o un controllo utente in una soluzione DLL. In effetti, due volte abbiamo dovuto caricare i file che abbiamo ricevuto in un nuovo progetto e questo è risolto.

Ho avuto lo stesso identico problema venerdì. Si scopre che VS2008 non è abbastanza intelligente (usando VSS come controllo del codice sorgente - lo so, ma è quello che ha il client) per controllare aspx, aspx.vb e designer.vb tutti allo stesso tempo in alcuni casi. Nel mio caso, stavo ottenendo ogni sorta di comportamenti strani, e ovviamente Visual Studio, nel tentativo di essere & Quot; utile & Quot; non ha modo di dare un'occhiata a designer.vb.

La soluzione è ricontrollare la pagina, quindi rilasciare un controllo sulla pagina e salvare (o eliminare un controllo - qualsiasi azione che causerà l'aggiornamento di designer.vb.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top