web-dev-qa-db-fra.com

Le nom 'Modèle' n'existe pas dans le contexte actuel ASP.NET MVC5

Je code un plugin sur NopCommerce 3.2 et l’erreur mentionnée ci-dessus est indiquée, mais aussi pour "Layout" et "Html". J'ai copié le même Web.Config qui fonctionne dans un autre plugin. J'ai également ajouté les mêmes références que celles utilisées dans le plugin de travail. Lorsque la compilation fonctionne, je n'ai pas d'intellisense et je ne peux pas croire que VisualStudio marque correctement les erreurs. J'utilise VS2013 Professional Update 1.

Voici le fichier Web.Config:

<?xml version="1.0" encoding="utf-8"?>

<!-- We use this file to make razor intellisense work in the class library -->




<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="Host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
  </appSettings>
  <system.web>
    <compilation targetFramework="4.5" />
    <pages
    validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add Assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>
  <system.web.webPages.razor>
    <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="Nop.Web.Framework.ViewEngines.Razor.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>
</configuration>

EDIT: Désolé si cette question n’a pas été étudiée, mais je vous assure que j’ai passé des heures à essayer de trouver la solution (y compris les questions que j’ai trouvées ici dans stackoverflow qui sont similaires et soulignant web.config comme étant le problème qui se pose). raison pour laquelle j'ai inclus ce fichier dans ma question) mais ne le trouve pas.

8
hjd

Cette erreur a probablement été causée par Resharper. Nous sommes une équipe de trois développeurs utilisant GIT. L'un de nous a installé Resharper, ce qui a probablement causé l'erreur pour les deux autres. Lorsque nous avons installé Resharper trial, il a soudainement fonctionné à nouveau. Malheureusement, cela ne fonctionne pas lors de la désinstallation de Resharper à nouveau ...

4
hjd

Essayez d'ajouter cette section dans system.web. (Assurez-vous que les versions que j'ai ajoutées sont bien celles que vous utilisez)

<compilation targetFramework="4.5">
  <assemblies>
    <add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Helpers, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add Assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
  </assemblies>
</compilation>

Fermez les fichiers de vue .cshtml. Reconstruisez le projet. Et rouvrez-les.

3
Marius Stănescu

La désinstallation du projet MVC Nuget Package et sa réinstallation ont résolu le problème. La mienne a été bâclée quand j'ai changé la version .net du projet. 

3
netslaves

Assurez-vous que l'espace de nom que vous avez défini dans la vue correspond à celui de votre modèle.

2
mariann

Si vous modifiez les propriétés de votre projet pour cibler 4.5.1,

targetFramework dans BEAUCOUP d’autres endroits dira toujours 45

Vous pouvez trouver targetFramework 3 à 4 fois dans votre racine web.config Et dans toutes sortes de packages.config.

J'ai eu le même problème, changer Project à la cible 4.5 et tout a été éclairci.

Préférable de ne pas cibler 4.5.1

2
user965445

J'ai rencontré la même erreur dans mon projet MVC 5. Mon cas était que le Web.config dans le dossier Views n'a pas été publié en quelque sorte. Le réintégrer a résolu le problème.

2
Stephen Zeng

J'ai eu le même problème. La solution consistait à désinstaller le projet MVC Nuget Package et à le réinstaller.

http://mhammadchehab.com/wordpress/2013/12/enabling-intellisense-for-razor-in-class-library-mvc-5-razor-3-0/

2
David

Modifiez le chemin Sortie du projet _ en /bin pour Toutes les configurations dans Propriétés du projet. C'est étrange, mais il semble que lorsque le VS Sortie du projet est poussé vers /bin/Debug ou /bin/Release, l'intellisense est complètement dépassé. 

project properties

2

Dans mon cas, je devais réinitialiser le cache de composants Visual Studio en fermant Visual Studio et en supprimant ce dossier:

C:\Utilisateurs\[nom d'utilisateur]\AppData\Local\Microsoft\VisualStudio\14.0\ComponentModelCache

1
Vojta Jemelka

J'ai eu la même erreur et juste changé En

J'essaie simplement d'obtenir cshtml intellisense dans une application console afin que cela fonctionne pour moi de revenir à la page Webview de base standard.

1
StewartArmbrecht