File Code-behind non riconoscendo i controlli in *.ascx

Ho un QuestionControl.ascx e un QuestionControl.ascx.cs codice dietro file che ho copiato in un nuovo progetto. Quando ho costruito il progetto di tutti i riferimenti nel file code-behind per controlli dichiarati nel ascx mi dà questo errore:

‘QuestionControl’ non contiene una
definizione di ‘rdbtnlstQuestion1’ e
nessun metodo di estensione
‘rdbtnlstQuestion1’ accettazione di un primo
argomento di tipo ‘QuestionControl’
potrebbe essere trovare un
direttiva using o un assieme
di riferimento?)

Questo è in cima alla mia *.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="QuestionControl.ascx.cs" Inherits="QuestionControl" %>

Ho anche provato CodeBehind:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="QuestionControl.ascx.cs" Inherits="QuestionControl" %>

Questo è il top della mia classe nel file code-behind, non è contenuto in uno spazio dei nomi:

public partial class QuestionControl : System.Web.UI.UserControl
{
  • Se si aggiunge un altro vuoto ascx con un altro controllo su di esso, significa che il controllo non compilare così?
  • Che versione del .NET framework è questo? E, giusto per essere sicuri, è questo MVC o WebForms?
  • Hai controllato gli spazi dei nomi?
InformationsquelleAutor AaronLS | 2010-05-21

 

6 Replies
  1. 13

    Cercare di eliminare il file di progettazione. VS.NET dovrebbe ricreare per voi quando si apre il file ascx. Ho avuto problemi simili in passato, dove il progettista out-of-sync per qualche motivo, e l’eliminazione di solito risolve il problema.

    • Penso che tu abbia ragione. Non c’è nessun .file di progettazione, e credo che questo sia il problema, dato che potrebbe contenere dichiarazioni dei controlli, che sono in ascx. Ma quello che trovo strano è il progetto in cui ho usato il controllo utente di prima, ha funzionato bene senza un file di progettazione. Ho provato a rimuovere e readding il controllo utente, e il progettista file non viene creato. Ho anche provato a creare manualmente la *ascx.designer.cs file, ma il file non ottenere associato con il controllo utente di sotto del nodo, e ho ancora ottenere gli errori.
    • Che versione di VS stai usando? E che tipo di progetto (sito web, webapp, ecc)?
    • Ok, ho ragione cliccato il *.file ascx e ha scelto “la Conversione di Applicazioni Web” e ha generato il file di progettazione e associati sotto il file ascx. Quello che mi chiedo ora è quello che dice di Visual Studio, che il designer di file è associato con un particolare file ascx, perché quando ho creato manualmente, esso non si desidera utilizzare questo file. Sicuramente c’è qualche markup da qualche parte che dice a VS “hey questo è il mio file di progettazione, un uso”.
    • ASP.NET Applicazione Web in VS 2008
    • Quando il file di progettazione, non si rigenera: stackoverflow.com/questions/45325/…
  2. 5

    Un’altra soluzione è:

    • apri il tuo .ascx pagina progettazione di vista
    • fare clic destro in qualsiasi punto della pagina e selezionare Aggiornamento

    (.ascx.designer.cs file può essere necessario per essere chiuso, mentre a fare refresh per questo lavoro)

  3. 1

    Cosa ha funzionato in forma, mi è stato elencato in un altro MODO la risposta e non la trovo così sto a ripetere qui.

    Provare ad eliminare la “ReflectedSchemas” nella cartella

    C:\Users\YOURUSENAME\AppData\Roaming\Microsoft\VisualStudio\15.0_079f391b\ReflectedSchemas

    Questo ha funzionato per me. A volte ho l’ “non riconosciuto” errori, e si elimina questa cartella. Molte grazie per l’OP. Stato farmi impazzire per anni. Ora, non ho la “scarabocchi” in HTML e non “barre rosse” nel codice dietro (aspx.cs)

  4. 1

    In VS2017 non c’è nessuna opzione “Converti in Applicazione Web” nel menu di scelta rapida .file ascx. Invece è necessario selezionare per .ascx file, quindi fare clic su “Progetto” nel menu in alto e selezionare ” Converti in Applicazione Web (che è tutto il senso giù nel menu Progetto.

  5. 0

    Ho avuto problemi, per esempio la creazione di una dropdownlist all’interno di una gridview. Quello che ho fatto è la creazione di un ddl al di fuori del gv fino a quando il desinger.cs riconosciuto e successivamente trasferisce il controllo all’interno del gv… spero che questo aiuta

  6. 0

    Ho avuto lo stesso problema, il code-behind non riconosce i comandi sul .pagina aspx. Sto usando VS 2012. Ho cliccato il progetto; cliccato su “Convert” per Applicazioni Web; e ha aggiunto di tutti i file di progettazione che non erano nemmeno prima. Ho ricostruito tutto e va bene ora.

Lascia un commento