"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!

23
demandé sur outlookrperson 2011-07-01 17:29:59

16 réponses

Vous pourriez essayer:

  1. Fermer View avec les fausses erreurs.

  2. Fermer Visual Studio

  3. ouvrez à nouveau le même projet

  4. Ouvrir un autre View puis celui qui cause les erreurs

  5. Fermer View, si tout va bien vous n'avez pas vu d'erreurs similaires dans ce View

  6. rouvrez le View cela vous a posé des problèmes auparavant

14
répondu Serj Sagan 2018-08-01 15:30:41

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.

7
répondu outlookrperson 2011-07-01 19:29:50

Nettoyez votre solution et sous Références. Ensuite, définissez la propriété suivante:

System.Web.MVC file to Copy Local = True.
7
répondu Manu 2014-10-22 18:23:21

Tout ce que j'avais à faire était de fermer toutes les vues qui étaient ouvertes dans l'éditeur et de reconstruire.

3
répondu steveareeno 2017-09-15 14:34:05

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.

1
répondu craigvl 2012-12-09 12:16:38
<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

0
répondu ciqueira 2013-07-01 14:49:49

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

0
répondu AceMark 2013-10-12 17:53:42

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.

0
répondu Pranithan T. 2014-03-21 12:56:47

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.'

0
répondu Jason 2014-05-19 19:11:57

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.

0
répondu dChimento 2015-05-04 23:15:21

Définir la propriété du Système.Web.MVC, Copy Local = True

0
répondu Anup Shetty 2016-03-30 09:25:34

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.

0
répondu George N 2016-12-12 23:31:00

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é.

0
répondu derloopkat 2017-02-24 13:54:25

J'utilise ASP. net core. Mine résolue par la mise à niveau Microsoft.AspNetCore.Mvc1.1.21.1.3.

0
répondu Lawrence 2017-05-30 14:10:04

pour moi, je viens de redémarrer mes studios visuels et tout a été réparé.

0
répondu Adeel Asghar 2017-06-03 06:06:56

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.

0
répondu Ron Splinter 2018-06-13 14:05:45