“Il nome xxx non esiste nel contesto attuale” dopo l'aggiunta di LoginView
Domanda
Ho una semplice, una sola pagina in ASP.NET (C #). Volevo aggiungere controllo login, quindi ho solo aggiunto LoginView come segue:
<form id="form1" runat="server">
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:Login ID="Login1" runat="server">
</asp:Login>
</AnonymousTemplate>
<LoggedInTemplate>
... here I put all the page elements (buttons, grid views, etc.)
</LoggedInTemplate>
</asp:LoginView>
</form>
Quando eseguo il mio progetto ottengo gli errori di compilazione nel mio file di codice-behing:
The name xxxx does not exist in the current context
Che cosa sto facendo di sbagliato? Sono nuovo in ASP.NET, quindi probabilmente si tratta di qualche stupido errore che faccio.
Soluzione 2
Ho trovato questo come la soluzione per il mio problema. Posso usare questo, per ottenere i miei oggetti.
Label Label1 = (Label)LoginView1.FindControl("Label1");
Non so se è l'unica soluzione. Forse qualcuno ha una migliore.
Altri suggerimenti
Ci sono diverse possibili cause di questo problema.
La prima è che si dispone di un copia di backup di questo stesso file qualche parte nel progetto.
Un altro è che due file diversi ASPX stanno usando lo stesso file CS per il codice -behind.
Un terzo è che ti sei dimenticato di includere System.Web o qualche altro file è necessario.
La speranza uno di questi aiuta!
La mia soluzione: Questo è un progetto esemplare caso di web-application. Soluzione: Destra progetto scatto in VisualStudio scegliere "Converti in applicazione web". questa è una buona soluzione