web-dev-qa-db-fra.com

Où est index.g.cshtml

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?

11
ImConfused

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.

7
Marco

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.

5

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.

2
96marrs

Récemment, j'ai rencontré le même problème,

Essayez la méthode simple suivante

  1. 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

  2. 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.

  3. Vérifiez également que vous avez un fichier en double et qui a été exclu du projet. S'il existe, supprimez également le fichier

  4. Maintenant, nettoyez et reconstruisez le projet. (Vous devrez peut-être nettoyer, fermer VS, reconstruire)

0
Magesh0051

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

0
Zinov

vous pouvez essayer la solution ci-dessous

  1. Allez dans C:\Temp\msbuild 2. Vous y trouverez un dossier avec le nom de votre projet et à l'intérieur de ce dossier, vous trouverez ces fichiers comme indiqué dans l'image ci-dessous
  2. Essayez de supprimer ces fichiers et de reconstruire votre solution qui pourrait vous aider
0
Apoorva Raju