J'essaie de travailler à travers ce tutoriel, ( ASP.Net Core Razor Pages ) mais (souvent) lorsque je crée la solution, j'obtiens une erreur CS0234 indiquant qu'un espace de noms manque dans le fichier 'Index. g.cshtml.cd '...… .mais où ce fichier existe-t-il? J'ai essayé 1. Toutes les options de solution build/clean/rebuild. 2. J'ai redémarré Visual Studio 3. J'ai supprimé les fichiers DEBUG et redémarré VS et FINALEMENT 4. J'ai redémarré mon PC. La SEULE solution qui semble fonctionner est de supprimer la solution/le projet dans son intégralité et de recommencer.
Il doit sûrement y avoir une solution à cela? Pouvez-vous m'aider?
Si une erreur indique qu'une directive using ou un espace de noms est manquant dans xxx.g.cshtml.cs
, ce qui signifie généralement qu'il existe une directive directement dans la vue (.cshtml
ou .vbhtml
), que le compilateur ne peut pas résoudre.
Dans mon cas, j'avais la déclaration suivante dans une vue partielle:
@inject UserManager<AppUser> UserManager
J'ai ensuite suivi et refactorisé la classe AppUser de l'application Web Namespace.Web.AppUser
en Namespace.Entities.AppUser
, qui provoquait alors cette erreur.
Il existe différentes façons de résoudre ce problème. Le moyen le plus simple consiste à utiliser un espace de noms de type complet:
@inject UserManager<Namespace.Entities.AppUser> UserManager
Et n'oubliez pas d'ajouter une référence à l'autre projet, s'il se trouve dans un autre projet. Ou: ajoutez une instruction using:
@using Namespace.Entities;
Ou: ajoutez l'instruction using ci-dessus à votre ~\Views\_ViewStart.cshtml
. Cela rendra cette classe disponible dans toutes les vues.
faites un clic droit sur votre projet et ouvrez le dossier dans l'Explorateur. Recherchez ensuite "Index.g.cshtml.cs" puis supprimez les résultats de la recherche de fichiers
Assurez-vous que votre Index.cshtml fait référence au bon modèle.
J'ai atterri ici avec les mêmes erreurs avec Visual Studio 2019 16.2.2. Pour moi, j'avais changé le nom de certains modèles et plutôt que de relever l'erreur dans les vues réelles qui utilisaient les modèles, l'erreur montrait dans page.g.cshtml plutôt que page.cshtml.
Donc, ma solution était plutôt simple. Si l'erreur se trouvait dans page.g.cshtml, ignorez le g, accédez à la vue page.cshtml, mettez à jour le nom du modèle avec le nom correct, reconstruisez et les erreurs ont disparu.
Récemment, j'ai rencontré le même problème,
Essayez la méthode simple suivante
copiez l'erreur et collez-la dans le bloc-notes. Là, vous pouvez voir le chemin d'origine du fichier d'erreur, par exemple 'YourProjectFolder'\obj\Debug\netcoreapp2.2\Razor\Views\'View Name'\index.g.cshtml.cs
Recherchez le fichier, si l'erreur persiste, référez-vous à l'espace de noms correct dans votre fichier index.cshtml, sinon supprimez le fichier et reconstruisez.
Vérifiez également que vous avez un fichier en double et qui a été exclu du projet. S'il existe, supprimez également le fichier
Maintenant, nettoyez et reconstruisez le projet. (Vous devrez peut-être nettoyer, fermer VS, reconstruire)
Essayez de nettoyer tous les dossiers obj dans tous vos projets et générez à nouveau. Cela fait partie du code généré par le compilateur, parfois il n'est pas synchronisé avec la vue elle-même, même la reconstruction qui devrait tout nettoyer ne fonctionne pas. Faites-le manuellement. J'espère que cela t'aides
vous pouvez essayer la solution ci-dessous