Je commence à utiliser "MVC 3" mais j'ai quelques problèmes à résoudre. Dans mes vues, lorsque je code quelque chose comme ceci:
@if(Request.IsAuthenticated) {
<text>Welcome <b>@Context.User.Identity.Name</b>!
[ @Html.ActionLink("Log Off", "LogOff", "Account") ]</text>
}
else {
@:[ @Html.ActionLink("Log On", "LogOn", "Account") ]
}
Les objets tels que @Request et @Html indiquent une erreur: The name 'HTML' does not exist in the current context
.
La même chose se produit avec @Context, @ViewBag, @Layout, @Url et autres.
Voir:
image http://i56.tinypic.com/28s1smp.jpg
Mais le code est correctement compilé sans erreur. Le problème est que je ne peux pas utiliser Intellisense avec ces objets dans les vues. Est-ce normal? (Je ne le pense pas). Que pourrait-il se passer?
J'ai réinstallé le framework MVC 3 mais la même chose se produit.
Remarque: il s'agit d'un nouveau projet à partir de zéro, pas d'une migration MVC 2. Cela se produit à la fois avec le moteur Razor et ASPX.
C'est le Web.Config dans le dossier Vues:
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
<section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
</sectionGroup>
</configSections>
<system.web.webPages.razor>
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
<appSettings>
<add key="webpages:Enabled" value="false" />
</appSettings>
<system.web>
<httpHandlers>
<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
</httpHandlers>
<!--
Enabling request validation in view pages would cause validation to occur
after the input has already been processed by the controller. By default
MVC performs request validation before a controller processes the input.
To change this behavior apply the ValidateInputAttribute to a
controller or action.
-->
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add Assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
</pages>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="BlockViewHandler"/>
<add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />
</handlers>
</system.webServer>
</configuration>
Merci!
J'ai résolu ce problème avec l'ancienne, la bonne solution sage par défaut de Microsoft: réinstallez tout à nouveau.
Désinstallez et réinstallez Visual Studio 2010 et MVC 3 Framework.
Tu pourrais essayer:
Fermez la View
avec les fausses erreurs.
Fermer Visual Studio
Rouvrir le même projet
Ouvrez une View
différente de celle à l'origine des erreurs
Fermez cette View
, j'espère que vous n'avez vu aucune des erreurs similaires dans cette View
Rouvrez la View
qui vous a posé des problèmes plus tôt
Nettoyez votre solution et sous références. Ensuite, définissez la propriété suivante:
System.Web.MVC file to Copy Local = True.
Tout ce que j'avais à faire était de fermer toutes les vues ouvertes dans l'éditeur et de les reconstruire.
Ce qui a fonctionné pour moi a été la fermeture de Visual Studio, la suppression des fichiers d’options utilisateur (au niveau solution et projet), puis la relance de Visual Studio.
Pour moi, cela semblait juste être le fait que j'avais des avertissements du compilateur. Le code serait toujours compilé et exécuté correctement mais ce n’est pas avant que j’ai corrigé tous les avertissements de construction que mon Intellisense commence à fonctionner.
Définissez la propriété de System.Web.MVC, Copy Local = True
J'ai essayé de supprimer le projet qui pose toujours problème et de le rajouter, après quoi le problème avait disparu.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
solution pour ce problème dans web.config
Toutes mes excuses pour le post necro.
La sélection de "Build | Rebuild Solution" a corrigé ce problème dans Visual Studio 2015. Dans mon cas, les avertissements se sont produits après le changement de nom de l'espace de nom principal d'un projet. Une reconstruction a tout remis en ordre.
J'ai eu le même problème dans MVC 4. Aucune de ces solutions ne fonctionnait pour moi. Au lieu de cela, sous Windows, je suis allé dans le Panneau de configuration -> Désinstaller un programme. Sélectionnez Microsoft ASP.NET MVC 4 dans la liste de programmes. Cliquez sur "Désinstaller". Un assistant d'installation de Microsoft ASP.NET MVC 4 s'affiche. Cliquez sur "Réparer".
Je l'ai également expérimenté sur ASP.NET MVC 4, après avoir désinstallé EntityFramework de ma liste de packages.
Je devais enlever cette section
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, ....
qui reste sur le fichier Web.config ... au moins il a supprimé les erreurs de la liste des erreurs
J'utilise le noyau ASP .net. J'ai résolu le mien en passant de Microsoft.AspNetCore.Mvc
de 1.1.2
à 1.1.3
.
Pour moi, je viens de redémarrer mes Visual Studios et tout a été corrigé.
Peut-être que je suis un peu en retard pour répondre à cette question mais cette solution facile m'a aidé:
Cliquez avec le bouton droit de la souris sur le fichier> Exclure du projet . Cliquez avec le bouton droit de la souris sur le fichier> Inclure dans le projet.
Dans mon cas, mon dossier Packages était absent, y compris MVC et Razor. J'ai donc mis à jour les packages dans packages.config, rouvert la vue et cela a fonctionné.