Donc, cela me perturbe depuis un moment, mais parfois, dans mon projet ASP.NET MVC4 de Visual Studio 2013, je vais supprimer une classe ViewModel inutilisée et obtenir une erreur qui ressemble à ceci (pour ViewModel appelé " MostRecentMemberListing.cs "que je viens de supprimer):
Erreur 9 Le type ou le nom de l'espace de noms 'MostRecentMemberListing' ne le fait pas existe dans l'espace de noms 'MembershipCenter.ViewModels' (il vous manque une assemblée référence?) c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\3e932790\42b7ff67\App_Web_cvlbfbci.1.cs 29 MembershipCenter
Si je double-clique sur l'erreur dans le panneau "Liste d'erreurs" de VS, un fichier situé dans ce chemin est ouvert: C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\temp\3e932790\42b7ff67
, qui est un fichier de vue généré par le système (?) Avec un nom de classe de _Page_Views_Home_MostRecentMember_cshtml
.
J'ai essayé de supprimer le fichier étrange lui-même, ainsi que son dossier contenant et son dossier contenant ITS, tout au long du chemin qui mène au dossier temp
sous Temporary ASP.NET Files
. Mais chaque fois que je recompile mon projet, tous ces dossiers et fichiers sont recréés directement dans celui-ci, ce qui entraîne la même erreur de compilation.
Je construis mes vues pendant la compilation, via <MvcBuildViews>true</MvcBuildViews>
dans le fichier de projet. Si je désactive ce paramètre, je peux construire + exécuter correctement, mais lorsque je le redéfinis sur true
, l'erreur de construction revient.
Quelqu'un at-il rencontré cette erreur auparavant? Est-ce lié à IIS? J'exécute IIS local et non IIS Express.
Ce n'est pas lié à IIS, local ou autre. Ce nom de fichier long et étrange que vous voyez est le nom que le compilateur donne à une vue lorsqu’il le compile. Tout ce que vous avez décrit vous dit, c’est que vous avez une erreur de compilation dans l’un de vos points de vue. Il peut s'agir de balises HTML incompatibles, d'un appel de propriété de modèle incorrect, etc.
En regardant votre message d'erreur, vous avez une vue dans le /Views/Home/MostRecentMember.cshtml
. En outre, il semble que vous manquiez effectivement de l’espace de nom pour votre déclaration de modèle ou que vous déclariez le mauvais espace de nom pour le modèle que vous essayez d’envoyer.
Supprimer le fichier étrangement nommé ne fera rien car lors de la reconstruction, il reviendra, probablement avec un nom différent.
Je l’ai eu encore une fois aujourd’hui, il doit y avoir un bogue dans Visual Studio qui l’a amené à essayer de compiler tous les fichiers cshtml du dossier views. Même s'ils ne font pas partie du projet. La meilleure solution est de cliquer sur Afficher tous les fichiers dans l’explorateur de solutions, de rechercher le fichier non fiable et de le supprimer.
Pour les autres. Il peut aussi être oublier le signe égal<%ThankyouMessage%>
au lieu de<%=ThankyouMessage%>
Cette erreur signifie que votre vue utilise un modèle introuvable. Cela se produit généralement lorsque vous refactorez/supprimez un modèle sans mettre à jour les vues!
La correction de la référence au modèle dans la vue affectée devrait résoudre ce problème.
Sinon, essayez de nettoyer le répertoire temporaire ASP.Net: Fichiers ASP.NET Temporaires C:\Windows\Microsoft .NET\Framework\v4.0.30319 \
J'ai le même problème et j'ai constaté que le problème est l'espace de noms de C #, sensible. L'espace de noms dans le fichier .cshtml de la vue est "@model IEnumerable" supérieur et l'espace de nommage de la classe est au format Camel "Abc.Def.Class".
Je change l'espace de noms au format Camel au format .cshtml et le lance.