"Le nom 'HTML' n'existe pas dans le contexte actuel " dans les vues MVC 3
je commence à utiliser "MVC 3" mais je fais face à quelques petits problèmes. De mon point de Vue, quand 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 comme @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 d'autres.
Voir:
image http://i56.tinypic.com/28s1smp.jpg
Mais le code est correctement compilé sans erreurs. Le problème est que je ne peut pas utiliser L'Intellisense avec ces objets dans les vues. Est-il normal? (Je ne pense pas). Ce qui pourrait se passer?
j'ai réinstallé le framework MVC 3 mais la même chose se produit.
Note: il s'agit d'un nouveau projet à partir de zéro, pas d'une migration MVC 2. Cela se produit à la fois avec Razor engine 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!
16 réponses
Vous pourriez essayer:
Fermer
View
avec les fausses erreurs.Fermer
Visual Studio
ouvrez à nouveau le même projet
Ouvrir un autre
View
puis celui qui cause les erreursFermer
View
, si tout va bien vous n'avez pas vu d'erreurs similaires dans ceView
rouvrez le
View
cela vous a posé des problèmes auparavant
j'ai résolu ce problème avec L'ancienne, bonne, Sage solution par défaut de Microsoft: réinstaller toutes les choses à nouveau.
désinstaller et réinstaller le cadre Visual Studio 2010 et MVC 3.
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 qui étaient ouvertes dans l'éditeur et de reconstruire.
pour moi, cela semblait être le fait que j'avais des avertissements de compilateur. Le Code compilerait et fonctionnerait toujours correctement, mais ce n'est que lorsque j'ai corrigé tous les avertissements de construction que mon Intellisense a commencé à fonctionner.
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
solution pour ce problème dans le web.config
I experienced this on ASP.NET MVC 4 aussi, après avoir désinstallé Entitefram Framework de ma liste de paquets.
j'ai dû supprimer cette section
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, ....
c'est laissé sur le Web.fichier de configuration... au moins, il a supprimé les erreurs de la liste des erreurs
j'ai essayé supprimer le projet qui est encore en difficulté de solution et de l'ajouter à nouveau, après quoi le problème avait disparu.
j'ai eu ce même problème dans MVC 4. Aucune de ces solutions n'a fonctionné pour moi. Au lieu de cela, dans Windows, je suis entré dans le Panneau de configuration -> Désinstaller un programme. Choisir Microsoft ASP.NET MVC 4 dans la liste des programmes. Cliquez Sur 'Désinstaller."A" Microsoft ASP.NET l'Assistant MVC 4 Setup' s'affichera. Cliquez Sur ' Réparer.'
ce qui a fonctionné pour moi, c'est la fermeture de Visual Studio, la suppression des fichiers d'options utilisateur (au niveau de la solution et du projet), puis la relance de Visual Studio.
Définir la propriété du Système.Web.MVC, Copy Local = True
toutes mes Excuses pour le nécro post.
en sélectionnant "construire / reconstruire la Solution" j'ai corrigé ce problème pour moi Dans Visual Studio 2015. Dans mon cas, les Avertissements se sont produits après avoir renommé l'espace de noms principal d'un projet. Une reconstruction de mettre tout en ligne droite.
dans mon cas, mon dossier Packages manquait, y compris MVC et Razor, donc j'ai mis à jour les paquets dans packages.config, a rouvert la vue et ça a marché.
J'utilise ASP. net core. Mine résolue par la mise à niveau Microsoft.AspNetCore.Mvc
1.1.2
1.1.3
.
pour moi, je viens de redémarrer mes studios visuels et tout a été réparé.
peut-être que je suis un peu en retard pour répondre à cette question mais cette solution facile m'a aidé:
clic Droit sur le fichier > Exclure du projet. Clic droit sur le fichier > Inclure dans le projet.