Après une refactorisation importante dans mon application MVC 4, et Razor affiche cette erreur lors du débogage des vues:
Le nom «modèle» n'existe pas dans le contexte actuel.
Ceci est la ligne de code incriminée:
@model ICollection<DataSourceByActive>
Je sais que l'utilisation de @model
est correcte.
Pourquoi cela arrive-t-il? Comment puis-je le réparer?
asp.net-mvc
asp.net-mvc-4
razor
Kehlan Krumme
la source
la source
Réponses:
Je pense que vous avez foiré le fichier web.config qui se trouve dans le dossier Views.
Créez un nouveau projet ciblant le même framework .NET et copiez son fichier Views / web.config au-dessus de celui de votre projet actuel. Cela résoudra votre problème.
En outre, comme l'a commenté Dudeman3000, si vous avez des zones dans votre projet MVC, elles ont
Views\web.config
également toutes des fichiers.la source
This will fix your problem.
Il n'a pas.Assurez-vous que vous disposez des éléments suivants dans votre
Web.config
répertoire de sites et de vuesWeb.config
dans laappSettings
sectionPour l'utilisation MVC5:
(Et il n'existe que dans le
Web.config
fichier principal .)la source
3.0.0.0
. (Et il n'existe que dans le fichier Web.config principal .)2.0.0.0
plutôt la version3.0.0.0
. Changer cela a résolu le problème. Je vous remercie!Voici ce que j'ai fait:
Le fichier .suo est un fichier caché dans le même dossier que le fichier de solution .svn et contient les options utilisateur de Visual Studio.
la source
web.config
fichier pour l'ASP.NET Core
application, donc cela a fonctionné pour moi (également ajouté quelques extensions pour l'intellisense amélioré)..vs
dossier a aidé.J'ai eu le même problème, j'ai créé un nouveau projet et copié les fichiers web.config comme recommandé dans la réponse de Gupta, mais cela n'a pas réglé les choses pour moi. J'ai vérifié la réponse d'Alex et Liam, je pensais que cette ligne devait avoir été copiée à partir du nouveau web.config, mais il semble que le nouveau projet lui-même n'ait pas cette ligne (MVC5):
L'ajout de la ligne au fichier views / web.config a résolu le problème pour moi.
la source
La modification de la ligne suivante dans web.config du dossier de vue a résolu la même erreur.
De
À
la source
System.Web.Mvc
référence d'assemblage pour confirmer la version principale dont vous avez besoin.Dans mon cas, j'ai récemment mis à jour de MVC 4 vers MVC 5, ce qui gâche assez mal le web.config. Cet article a énormément aidé.
http://www.asp.net/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web- api-2
L'essentiel est que vous devez vérifier toutes vos références de numéro de version dans votre web.config et Views / web.config pour vous assurer qu'ils font référence aux versions mises à niveau correctes associées à MVC 5.
la source
Changer pour @Model de @model a fait le travail pour moi.
@model représente le type d'objet View Model. @Model représente l'objet View Model.
la source
J'ai trouvé une solution. Si vous souhaitez mettre à jour la version du rasoir ou mvc 4 à 5, changez certaines lignes.
Ancien code dans Views / web.config
Remplacé par
sectionGroup
doit aussi changer.la source
Dans mon cas, le code suivant s'avère utile. Placez le code ci-dessous dans le fichier Web.config sous le dossier Vues.
Une fois le code mis à jour, assurez-vous de nettoyer et de reconstruire la solution. J'espère que cela vous aidera!
la source
Aucune des réponses existantes n'a fonctionné pour moi, mais j'ai trouvé ce qui a fonctionné pour moi en comparant les
.csproj
fichiers de différents projets. L'édition manuelle suivante du.csproj
fichier XML a résolu le problème Razor-intellisense pour moi, peut-être que cela peut aider quelqu'un d'autre qui a essayé toutes les autres réponses en vain. La clé est de supprimer toutes les instances de<Private>False</Private>
dans le<Reference>
:Je ne sais pas comment ceux-ci y sont arrivés ni exactement ce qu'ils font, peut-être que quelqu'un de plus intelligent que moi peut ajouter ces informations. J'étais juste heureux de pouvoir enfin résoudre ce problème.
la source
Pour une raison quelconque, mon web.config avait 0.0.0.0 dans l'attribut oldVersion:
le passage à 1.0.0.0 était la solution:
la source
J'utilisais un projet MVC4 avec Visual Studio 2019 - et il s'est avéré que VS 2019 ne prend pas en charge MVC 4 prêt à l'emploi. Vous devez l'installer.
Pas:
REMARQUE: Obligatoire pour la fermeture de Visual Studio
la source
Dans mon cas, le problème était qu'après la mise à niveau du projet de MVC 4 vers MVC 5, j'ai en quelque sorte manqué un changement de version dans Views / web.config:
Il avait toujours l'ancienne version 2.0.0.0. Après avoir changé la version en 3.0.0.0, tout a commencé à fonctionner correctement.
De plus, en raison de ce problème, Visual Studio 2015 Community Edition commencerait à dénigrer le processeur (30 à 40% d'utilisation au repos) chaque fois que j'ouvrirais un fichier .cshtml.
la source
J'ai eu le même problème lors du déploiement sur un Azure App Service
Dans mon cas, c'était parce que ~ / Views / Web.config n'était pas inclus dans le projet.
Cela a fonctionné dans IIS Express, mais lorsque j'ai déployé sur azure, j'ai eu la même erreur. N'étant pas inclus dans le fichier .csproj, il n'a pas été déployé.
La solution était de s'assurer que ~ / Views / Web.config est inclus dans le projet.
Si vous allez dans l'explorateur de solutions et cliquez sur l'icône "Afficher tous les fichiers", puis ouvrez les vues, vous pouvez voir un fichier Web.config non inclus en dessous.
Ajoutez-le, republiez et Bob est votre oncle.
la source
Pour moi, le problème était une version .NET en conflit dans l'une des bibliothèques que j'ai récemment importées. La bibliothèque que j'ai importée a été compilée pour 4.5.2 et le site ASP.NET MVC je l'ai importée dans la cible 4.5. Après avoir recompilé ladite lib pour 4.5, le site Web se compilerait.
De plus, il n'y a pas eu d'erreurs de compilation, mais le problème a été signalé comme un "avertissement". Assurez-vous donc de lire tous les avertissements, le cas échéant.
la source
Afin de résoudre ce problème, je me suis assuré que j'étais mis à niveau vers la dernière version MVC à l'aide de NuGet et de la console Package Manager.
Install-Package Microsoft.AspNet.Mvc -Version 5.2.4
Puis mis à niveau vers la dernière version de Razor
Install-Package Microsoft.AspNet.Razor -Version 3.2.4
Ensuite, j'ai changé tous les fichiers web.config pour refléter le changement. Comme vous le verrez ci-dessous:
Dans le fichier web.config principal, assurez-vous que la version des pages Web: est correcte. C'est où il peut être trouvé (ignorez les autres clés):
Recherchez ensuite les autres versions répertoriées dans les assemblys, vérifiez la version de l'assembly par rapport à la version de la bibliothèque répertoriée dans les références de votre projet! Vous n'aurez peut-être pas besoin de tout cela.
Runtime assemblyBinding devrait également montrer la "newversion", voir où il lit NewVersion 5.2.4.0? Mais vérifiez également toutes les autres versions.
ALORS dans la section Vues Web.Config, assurez-vous que Razor est la version correcte:
Et Lastlt, il y a la section Pages des vues Web.Config
la source
si vous prenez ce problème sans aucun changement sur votre projet comme moi, vous devez changer votre web.config qui a été placé dans View Folder. il suffit d'écrire une nouvelle ligne en entrant ou en supprimant une ligne vide. puis enregistrez votre web.config et reconstruisez. mon problème résolu avec cette solution
la source
J'essayais d'ajouter une vue qui était en dehors de mon dossier "Vues" (juste pour organiser mon code différemment, je suppose), quand j'ai eu ce problème. La création de la vue à l'intérieur des vues (comme par convention) l'a résolu.
la source
Dans mon cas, je manquais @ au début de la foreach
la source
Dans mon cas, j'ai supprimé le fichier web.config du dossier Views par accident. Je l'ai rajouté et c'était OK.
la source
J'ai résolu le problème en utilisant
@Model
au lieu de simplementmodel
lors de l'impression des variables.la source
Vous êtes susceptible d'utiliser dans le code une variable nommée
model
.la source