Rasoir Vue de ne pas voir de Système.Web.Mvc.HtmlHelper
Je suis dans le processus de mise à jour MVC4. J'ai suivi les instructions à http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 mais dans mon Rasoir vues et mises en page, j'ai des erreurs comme
- 'Système.Web.Les pages web.Html.HtmlHelper' ne contient pas une définition
pour "BeginRouteForm' et aucune méthode d'extension 'BeginRouteForm'
acceptant un premier argument de type
'Système.Web.Les pages web.Html.HtmlHelper' a pu être trouvé (vous manque
une directive using ou une référence d'assembly?)
J'ai aussi des erreurs comme:
- "Le nom de "Viewbag" n'existe pas dans le contexte actuel
Quand j'ai passez la souris sur @Html je peux voir qu'il est de type System.Web.Les pages web.Html.HtmlHelper pas Système.Web.Mvc.HtmlHelper
Pas vraiment sûr de ce que d'autres renseignements pertinents, mais c'est là où je suis:
- Je n'ai pas mis à jour la bibliothèque de classe etc.. dans les gs de .net 4.5 encore.
- Le projet a été créé dans VS2010, mais je suis en train de faire la migration en
VS2012 - Le projet s'ouvre et fonctionne OK avec VS2012, .Net 4.0, MVC 3
Tous les pointeurs apprécié.
Edit:
Toutes les références et les fichiers dans le web.config mis à jour à:
- Système.Web.Mvc, Version=4.0.0.0
- Système.Web.Les Pages Web, Version=2.0.0.0
- Système.Web.Aides, Version=2.0.0.0
- Système.Web.Les pages web.Rasoir,
Version=2.0.0.0
Edit(2):
Dans mon /vues/web.config (ou /views/shared/web.config si j'essaie @Paul 's solution ci-dessous) dans l'élément, j'ai mon propre type de base qui hérite de System.Web.Mvc.WebViewPage , les références dans le contenant de la bibliothèque ont été mis à jour à MVC4 et aller à la définition me prend à la MVC4 dll.
A quelque chose de changé dans ce domaine sur la nouvelle version? Je ne pouvais pas voir quelque chose de pertinent dans les notes de version.
- avez-vous vérifié votre site web.les configs?
- Quelle est la version de Pages web de votre site web.config de référence?
- Salut, avez-vous résoudre ce problème? Je vais avoir le même problème. Toute aide serait super.
- Désolé, je n'ai... mais pas d'une manière que je pourrais document. Je jouait avec toutes les configs pour quelques heures et, éventuellement, il a commencé à travailler. Je n'ai jamais mis le doigt sur la "magie" fix.
- Je vais avoir un problème similaire, mais mon intellisense erreurs lors de la référence à une classe statique à l'intérieur de mon projet. Il ne trouve pas l'espace de noms. Toutes les idées ici?
- veuillez le marquer comme étant answar stackoverflow.com/a/23389635/1335120
Vous devez vous connecter pour publier un commentaire.
J'ai rencontré ce problème avec une Application Web - mon
.cshtml
fichiers est resté coincé sur laSystem.Web.WebPages.WebViewPage
de la classe de base quand j'ai besoin de laSystem.Web.Mvc.WebViewPage
.D'abord, vérifiez que votre ~/Views/web.fichier de configuration est de la bonne
pageBaseType
. Dans mon cas, j'ai mis àSystem.Web.Mvc.WebViewPage
.Puis, important, certaines personnes ont trouvé que c'est la clé si ce qui précède est déjà bien:
.user
fichier que Visual Studio a généré en regard du projet.Pour VS2015, le
.user
et.sln
les fichiers ont été transférés à.vs
dossier caché qui est créé à côté de la.sln
fichier. Cependant, d'après les commentaires ci-dessous, les messages d'erreur implique pour moi que l'outillage est l'utilisation de la mauvaise version de la MVC entièrement, et de la suppression de ce dossier ne permet pas de résoudre le problème. À ma connaissance, il n'existe pas de solution connue.MVC 5
dans ma solution.'_Page_Views_Home_Index_cshtml' does not contain a definition for 'ViewBag'
au sein de l'éditeur etThe type or namespace name 'AspNet' does not exist in the namespace 'Microsoft'
dans la liste d'erreurs (CS0234). Je suis en utilisant MVC 5 et tout a commencé lorsque j'ai mis à jour à VS2015 de VS2013. Si quelqu'un a de toute l'assistance, il serait grandement apprécié que cela commence à vraiment m'agacer! Grrr!The type or namespace name 'AspNet' does not exist in the namespace 'Microsoft'
, il sonne vraiment comme des symptômes similaires comme ci-dessus, mais complètement différent questions... Si quelqu'un ouvre une nouvelle question avec visual-studio-2015 asp.net mvc-5, etc., et les liens, je serais heureux de upvote.J'ai eu le même problème lors de la mise à jour vers MVC 5 et il a été résolu par une mise à jour sur le web.config à l'intérieur du dossier Vues.
L'hôte -> factoryType a été défini sur la version:4.0.0.0
espérons que cela aide quelqu'un.
J'ai essayé toutes les solutions, mais aucune n'a fonctionné pour moi. Encore une fois, mon site fonctionne très bien mais je n'ai pas intellisense et rouges lignes ondulées sous un tas de choses dans mon point de vue que Visual Studio ne reconnaît pas, l'un d'eux étant
Html.BeginForm()
, ainsi que de rien avoir à faire avecViewBag
.Je suis en train de travailler avec une nouvelle MVC 5 projet. Après des heures de la comparaison de web.config les lignes, j'ai enfin trouvé ce qu'il fixe pour moi.
De mon site web.config dans ma racine a la ligne suivante:
J'ai par rapport à un précédent projet de ne pas utiliser MVC 5, et copié sur un bloc que j'ai remarqué était absent de la nouvelle, qui a été le suivant:
J'ai copié le bloc ci-dessus de plus pour mon nouveau projet web.config à la racine, en changeant les versions pour correspondre à la chiffres de chaque assemblée trouvé dans mes références de projet (clic droit chaque référence mentionné et en sélectionnant "Propriétés", "Version" est donnée au bas de la fenêtre des propriétés de la référence sélectionnée).
Après la mise en œuvre de ce qui précède, j'ai maintenant intellisense et de ne pas avoir n'importe quel inconnu lignes rouges sous des choses comme
Html.BeginForm
,ViewBag.Title
, etc.J'avais couru un projet propre, et installé ou réinstallé tout et a toujours beaucoup de Intellisense erreurs, même si mon site a été compilation et à l'exécution de l'amende. Intellisense enfin fonctionné pour moi quand j'ai changé les numéros de version dans mon web.fichier de config dans le dossier Vues. Dans mon cas, je suis le codage d'un module dans le Verger, qui s'exécute dans un MVC domaine, mais je pense que cela va aider quelqu'un à l'aide de la dernière version de la MVC. Voici mon site web.config de le dossier Vues
Vous avez besoin de copier
Views/Web.config
à/Shared
. Ceci va dire Rasoir à utiliser le MVC type de base & parser. Vous pouvez en lire plus ici: http://blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.htmlDe m'occuper de ce problème après la mise à niveau à partir de
Visual Studio 2013
àVisual Studio 2015
Après avoir essayé la plupart des conseils trouvés dans cette et d'autres semblables, de SORTE postes, j'ai enfin trouvé le problème. La première partie de la solution était de mettre à jour l'ensemble de mesNuGet
trucs à la dernière version (vous pourriez avoir besoin pour ce faire, dansVS13
si vous rencontrez leNuget
bug) après, j'ai eu, comme vous l'avez peut-être besoin d', fixer les versions listées dans le VuesWeb.config
. Cela comprend:MVC
versions et de son enfant bibliothèques de la nouvelle version (étendre laReferences
puis cliquez droit surSytem.Web.MVC
puisProperties
pour obtenir votre version)Razor
version.La mienne ressemblait à ceci:
Dans la passation le monde, je suis souvent à l'aide de machines qui utilisent des anciennes images. Après avoir essayé tout ce qui précède, j'ai décidé de mettre à jour mon VS 2013 pour la version la plus récente (mise à Jour 4). Après 90 minutes et un redémarrage de la références sont fonctionne très bien maintenant! Espérons que cette aide!
Avoir tout essayé en vain, j'ai découvert que dans mon cas ce n'était pas de travail, car une mauvaise valeur de l'attribut dans le Projet Web fichier csproj. Quand je change de ToolsVersion à 14, ce qui correspond à ma version IDE (c'est à dire de Visual Studio 2015), tout a fonctionné comme un charme:
Pour ceux souffrant de cette après la migration d'un projet de VS 2013 VS 2015, j'ai été en mesure de résoudre ce problème en installant le ASP.NET mise à jour des outils de https://visualstudiogallery.msdn.microsoft.com/c94a02e9-f2e9-4bad-a952-a63a967e3935/file/77371/6/AspNet5.ENU.RC1_Update1.exe?SRC=VSIDE&UPDATE=TRUE.
Mise à jour pour Visual Studio 2017 Utilisateurs:
Si vous venez de migrer vers Visual Studio 2017 et que votre projet est MVC4, assurez-vous de revenir en arrière dans l'VS2017 Installer et vérifier le MVC4 option en vertu de la "ASP.NET et de développement web de la section". C'est un composant facultatif et pas cochée par défaut.
Cela a résolu mon problème
Juste pour élargir sur Matt DeKrey réponse, tout simplement en supprimant le csproj.fichier de l'utilisateur (sans avoir besoin de recréer des solutions) a été en mesure de résoudre le problème pour moi.
Le seul effet secondaire que j'ai eu était j'avais besoin de réinitialiser le Démarrage de l'Action de retour à l'aide d'une page spécifique.
J'ai utilisé la suite de l'article sur MSDN pour résoudre ce problème (dans ce cas, de l'MVC MVC 4 à 5)
https://docs.microsoft.com/en-us/aspnet/mvc/overview/releases/how-to-upgrade-an-aspnet-mvc-4-and-web-api-project-to-aspnet-mvc-5-and-web-api-2
Principaux extraits de l'article sont:
Web Principal.config (Pas celui dans le dossier Vues)
Dans l'exécution du bloc Système de mise à jour.Web.Mvc 5.0.0.0 ,Système.Web.Les aides à 3.0.0.0 et du Système.Web.Les pages web pour 3.0.0.0
Puis recherchez le bloc appsettings et mettre à jour les pages web:la Version de la valeur à 3.0.0.0
Vues Web.config
Mise à jour de l'hôte factoryType bloc du Système.Web.Mvc 5.0.0.0
Puis sous les pages block mise à jour toutes les références au Système.Web.Mvc 5.0.0.0
Et finalement, dans le bloc de configuration de mise à jour du Système.Références Web pour 3.0.0.0
Récemment eu le même problème et voici comment je l'ai résolu:
Sur Visual Studio avec votre projet dans la question ouverte, Goto:
Il va charger ce qui est manquant dans votre projet et tout devrait être de retour sur la bonne voie.
Juste commencé à se pencher sur la question de moi-même et c'est à quoi il ressemble dans mon cas. Si vous avez les valeurs correctes dans votre site web config puis c'est juste un bug dans MVC4.
http://connect.microsoft.com/VisualStudio/feedback/details/727729/viewbag-not-recognized-in-asp-net-mvc-4-project
Cette configuration est manquant, l'ajouter et définir version appropriée des assemblées
Comme une variation sur un thème, j'aurais juré haut et en bas que mon point de Vue\Web.config est correcte:
Mais en fait, j'ai besoin de faire référence
Version=4.0.0.1
, pasVersion=4.0.0.0
en raison de la mise à jour de sécurité qui a poussé un certain temps.Que pour moi, c'était une stupide erreur de déploiement: projets Web peut avoir plus d'un site web.config. Il a travaillé sur le développement de la machine et non pas dans la production, mais nous n'étions pas conscients que le script de déploiement seulement attrapé le
Web.config
fichier à la racine, et ce n'est pas la copie de laWeb.config
fichier dans leViews
dossier.J'ai rencontré ce problème spécifique; il n'est (ou incorrecte) intellisense montrant lorsque vous essayez d'utiliser de rasoir balises. Ma question spécifique a été VS2015 se plaindre que Html.BeginForm n'était pas en vigueur dans le contexte actuel.
J'ai mis en place mon projet MVC, et a réussi à réduire la cause de mon erreur pour le web.fichier de configuration pour une zone spécifique, plutôt que sur le web.config.
Il s'avère que la cause de ce problème pour moi, c'était que j'avais ajouté un SQL connectionString dans le web.config pour la région qui n'était pas de travail, c' (je suppose) a provoqué une erreur d'analyse, cependant, le projet compilé correctement.
Le déplacement de la connectionString pour le web mondial.config a corrigé le problème. J'espère que cela pourra être utile à d'autres.
Ma situation ne s'est produite après, j'ai créé une classe personnalisée appelée
BaseViewPage
qui l'emportait sur laWebViewPage
classe. Au départ, j'ai ajouté ce qui suit à mon Principal Web.confg fichier:Et le même à la Vue dossiers web.fichier de configuration:
J'ai essayé beaucoup d'autres réponses, et aucun n'a fait le tour tout en permettant toujours à moi de garder mon
BaseViewPage
classe. La façon dont je le fixe, il a été de retirer lepageBaseType
attribut de la Principal Web.fichier de configuration uniquement. Conserver dans le Vue web.config.Je suis tombé sur plusieurs réponses dans la et à la fin, j'ai réalisé que mon erreur est que j'avais mal orthographié "Html.TextBoxFor." Dans mon cas, ce que j'ai écrit était "Html.TextboxFor." Je n'ai pas le B majuscule dans TextBoxFor. Fixe et voilà. Le problème est résolu. J'espère que cela aide quelqu'un.
Droit, j'ai essayé de résoudre ce problème pendant un certain temps. J'ai utilisé toutes les solutions dans les différents Débordement de Pile topics à ce sujet et rien ne semblait être au travail.
Je viens de correction de l'émission de ce matin. Après que vous avez donné fixe le web.config pour le projet et les points de vue, de s'assurer que tous les .versions de dll sont en correspondance avec ce que vous avez dans le dossier de références. Vous aurez besoin de décharger le projet, modifier le .csproj, et ensuite mettre à jour tous les .versions de dll dans le fichier.
Espère que cette aide, que j'ai enfin résolu ce problème! Pas plus rouge des traits ondulés.
Cela a également fixé le menu contextuel question j'ai eu des cas où, je n'ai pas l'option pour ajouter un contrôleur, vue etc.
Pour moi la solution a été de changer les éléments suivants: