Errore di compilazione ASP.NET 2.0:Assicurati che la classe definita in questo file di codice corrisponda all'attributo 'inherits'
-
23-08-2019 - |
Domanda
Ok, sono completamente bloccato su questo errore di compilazione.È un sito Web (non un'app Web), .NET 2.0.
Ho un file in questa directory:benvenuti_teams
nome del file:default.aspx
Dichiarazione di pagina:
<%@ Page Language="C#" MasterPageFile="~/masters/Site.master"
AutoEventWireup="true" CodeFile="default.aspx.cs"
Inherits="welcome_teams_default" %>`
Codice dietro
public partial class welcome_teams_default : System.Web.UI.Page
E continuo a ricevere questo errore:Assicurati che la classe definita in questo file di codice corrisponda all'attributo 'inherits'
Ho provato a eliminare il file e ad aggiungerlo di nuovo come "nuovo elemento" e, qualunque cosa accada, l'errore persiste.
Qualche idea?
Grazie!
Soluzione
Quindi, non ha nulla a che fare con gli spazi dei nomi, ha a che fare con la pagina default2.aspx, che punta alla pagina default.aspx.
L'attributo CodeFile della pagina default2.aspx era impostato su "default.aspx.cs", il che ha rovinato tutto.
Per chiunque potrebbe avere questo problema in futuro, a volte puoi risolverlo cambiando CodeFile in CodeBehind.
Inoltre, in teoria si trattava di un problema di spazio dei nomi, ma Dio quanto odio il modo in cui i progetti di siti Web gestiscono gli spazi dei nomi.
Altri suggerimenti
Molto probabilmente poiché il tuo file si trova in una cartella all'interno della web root, quando lo crei VS cambia lo spazio dei nomi per i file generati.Ad esempio, se il nome del tuo sito è Il mio sito web Poi spazio dei nomi predefinito perché è MyWebsite;
namespace MyWebsite
ma per il tuo file aspx all'interno di Welcome_teams dovrebbe essere:
namespace MyWebsite.welcome_teams
quindi nella tua pagina aspx prova a cambiare:
<% Page ... inherits="welcome_teams_default" %>
A
<% Page .. Inherits="MyWebsite.welcome_teams.welcome_teams_default" %>
Dovresti controllare il file default.designer.cs e assicurarti che abbia anche lo stesso nome di classe.A volte, se esiste un file designer.cs e viene modificato manualmente (ma a volte per altri motivi), la sincronizzazione tra la pagina .aspx e il codice sottostante può interrompersi.Per vedere il file .designer.cs, dovrai mostrare i file nascosti nel tuo progetto.