web-dev-qa-db-fra.com

Vues de rasoir ne voyant pas System.Web.Mvc.HtmlHelper

Je suis en train de passer à MVC4. J'ai suivi les instructions sur http://www.asp.net/whitepapers/mvc4-release-notes#_Toc303253806 mais dans mes vues Razor et ma mise en page, j'ai des erreurs telles que 

  • 'System.Web.WebPages.Html.HtmlHelper' ne contient pas de définition Pour 'BeginRouteForm' et aucune méthode d'extension 'BeginRouteForm' Acceptant un premier argument de type 'System.Web.WebPages.Html .HtmlHelper 'pourrait être trouvé (il vous manque Une directive using ou une référence Assembly?)

J'ai aussi des erreurs comme:

  • "Le nom 'Viewbag' n'existe pas dans le contexte actuel

Lorsque je survole @Html, je constate qu'il est de type System.Web.WebPages.Html.HtmlHelper et non System.Web.Mvc.HtmlHelper.

Je ne sais pas vraiment quelles autres informations sont pertinentes, mais voici où je suis:

  • Je n'ai pas encore mis à jour les bibliothèques de classes, etc. dans le sln à .net 4.5.
  • Le projet a été créé dans VS2010, mais je suis en train d'effectuer la migration dans VS2012 
  • Le projet s'ouvre et fonctionne correctement avec VS2012, .Net 4.0, MVC 3

Tous les pointeurs appréciés.

Edit: Toutes les références et tous les fichiers de web.config ont été mis à niveau vers:

  • System.Web.Mvc, Version = 4.0.0.0 
  • System.Web.WebPages, Version = 2.0.0.0
  • System.Web.Helpers, Version = 2.0.0.0 
  • System.Web.WebPages.Razor, Version = 2.0.0.0

Edit (2): Dans mon /views/web.config (ou /views/shared/web.config si j'essaie la solution de @Paul 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 de la bibliothèque qui les contient ont été mises à jour vers MVC4 et la définition passe à la DLL MVC4.

Est-ce que quelque chose a changé dans ce domaine sur la nouvelle version? Je ne voyais rien de pertinent dans les notes de publication.

66
NikolaiDante

J'ai rencontré ce problème avec une application Web: mes fichiers .cshtml se sont bloqués sur la classe de base System.Web.WebPages.WebViewPage alors que j'avais besoin du System.Web.Mvc.WebViewPage

Tout d’abord, assurez-vous que votre fichier ~/Views/web.config contient la bonne variable pageBaseType. Dans mon cas, j'ai mis à System.Web.Mvc.WebViewPage.

<configuration>
  <system.web.webPages.razor>
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <!-- ... -->
    </pages>
  </system.web.webPages.razor>
</configuration>

Ensuite, et surtout , certaines personnes ont trouvé que c'était essentiel si ce qui précède est déjà bon:

  1. Exécuter un nettoyage sur la solution
  2. Décharger le projet avec les problèmes
  3. Supprimez le fichier .user généré par Visual Studio en regard du projet. 
  4. Recharger le projet avec les problèmes
  5. Construire la solution

Pour VS2015 , les fichiers .user et .sln ont été déplacés vers le dossier caché .vs créé à côté du fichier .sln. Cependant, d'après les commentaires ci-dessous, les messages d'erreur m'indiquent que l'outil utilise entièrement la mauvaise version de MVC et que la suppression de ce dossier ne résout pas le problème. À ma connaissance, il n'y a pas de solution connue.

87
Matt DeKrey

J'ai eu le même problème lors de la mise à jour vers MVC 5 et cela a été résolu en mettant à jour le fichier web.config dans le dossier Views.

<system.web.webPages.razor>
<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.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.Optimization"/>
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>

L'hôte -> factoryType a été défini sur la version: 4.0.0.0 Espérons que cela aidera tout le monde.

24
user3141889

J'ai essayé toutes les solutions ici mais aucune d'entre elles n'a fonctionné pour moi. Encore une fois, mon site fonctionne bien, mais je n'ai pas d'intellisense et des lignes ondulées rouges dans beaucoup de choses que Visual Studio ne reconnaît pas, l'une d'elles étant Html.BeginForm(), ainsi que tout ce qui concerne ViewBag.

Je travaille avec un nouveau projet MVC 5. Après des heures passées à comparer les lignes de web.config, j’ai enfin trouvé ce qui me convenait.

Mon web.config dans ma racine avait la ligne suivante:

<system.web>
  <compilation debug="true" targetFramework="4.5" />

  <!-- ... -->
</system.web>

J'ai comparé un projet précédent qui n'utilisait pas MVC 5 et j'ai copié un bloc que j'avais remarqué comme manquant dans le nouveau, qui était le suivant:

<system.web>
  <compilation debug="true" targetFramework="4.5">
    <assemblies>
      <add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add Assembly="System.Web.Helpers, Version=3.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.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
      <add Assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
  </compilation>

  <!-- ... -->
</system.web>

J'ai copié le bloc ci-dessus dans le répertoire web.config de mon nouveau projet à la racine, en modifiant les versions afin qu'elles correspondent aux numéros de chaque assemblage trouvé dans les références de mon projet (cliquez avec le bouton droit de la souris sur chaque référence mentionnée et sélectionnez "Propriétés", puis "Version". en bas de la fenêtre des propriétés pour la référence sélectionnée).

Après avoir implémenté ce qui précède, j’ai maintenant intellisense et je n’obtiens aucune ligne rouge inconnue sous des éléments tels que Html.BeginForm, ViewBag.Title, etc.

8
David Gunderson

J'avais exécuté un projet propre et installé ou réinstallé le tout. J'avais de nombreuses erreurs Intellisense, même si mon site compilait et fonctionnait correctement. Intellisense a finalement fonctionné pour moi lorsque j'ai modifié les numéros de version de mon fichier web.config dans le dossier Views. Dans mon cas, je suis en train de coder un module dans Orchard, qui fonctionne dans une zone MVC, mais je pense que cela aidera tout le monde à utiliser la dernière version de MVC. Voici mon web.config du dossier Views

    <?xml version="1.0"?>
    <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>

      <system.web.webPages.razor>
        <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="Orchard.Mvc.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" />
            <add namespace="System.Linq" />
            <add namespace="System.Collections.Generic" />
          </namespaces>
        </pages>
      </system.web.webPages.razor>

      <system.web>

        <!--
            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=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
            pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL"
            userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
          <controls>
            <add Assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL" 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>
6
user2570487

Vous devez copier Views/Web.config dans /Shared. Cela indiquera à Razor d'utiliser le type et l'analyseur de base MVC. Vous pouvez en lire plus ici: http://blog.slaks.net/2011/02/dissecting-razor-part-3-razor-and-mvc.html

4
Paul

Je m'occupais de ce problème après avoir mis à niveau de Visual Studio 2013 à Visual Studio 2015 Après avoir essayé la plupart des conseils trouvés dans cet article et dans d’autres articles similaires SO, j’ai finalement trouvé le problème. La première partie du correctif consistait à mettre à jour tous mes éléments NuGet vers la dernière version (vous devrez peut-être le faire dans VS13 si vous rencontrez le bogue Nuget) après avoir dû corriger les versions listés dans le Vues Web.config. Ceci comprend: 

  1. Corrigez les versions MVC et ses bibliothèques enfants sur la nouvelle version (développez la References puis cliquez avec le bouton droit de la souris surSytem.Web.MVC puis Properties pour obtenir votre version) 
  2. Corrigez la version Razor

Le mien ressemblait à ceci:

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

  <system.web.webPages.razor>
    <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.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.Optimization"/>
        <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>
    <pages
      validateRequest="false"
      pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
      pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
      userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <controls>
        <add Assembly="System.Web.Mvc, Version=5.2.3.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>
3
Serj Sagan

Après avoir tout essayé en vain, j'ai découvert que dans mon cas, cela ne fonctionnait pas, car un attribut incorrect dans le fichier Web Project csproj. Lorsque je modifie ToolsVersion en 14 , ce qui correspond à ma version actuelle IDE (Visual Studio 2015), tout fonctionne à merveille:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.Microsoft.com/developer/msbuild/2003">
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition=
  .....
2
Korayem

Dans le monde des contrats, j'utilise souvent des machines qui utilisent des images plus anciennes. Après avoir essayé tout ce qui précède, j'ai décidé de mettre à jour mon VS 2013 vers la version la plus récente (Update 4). Après 90 minutes et un redémarrage, les références fonctionnent parfaitement! J'espère que cela t'aides!

2
RichieMN

Pour ceux d'entre vous qui en souffrent après avoir migré un projet de VS 2013 à VS 2015, j'ai pu résoudre ce problème en installant la mise à jour des outils ASP.NET depuis https://visualstudiogallery.msdn.Microsoft.com/c94a02e9- f2e9-4bad-a952-a63a967e3935/file/77371/6/AspNet5.ENU.RC1_Update1.exe? SRC = VSIDE & UPDATE = TRUE .

2
chipples

Mise à jour pour les utilisateurs de Visual Studio 2017:

Si vous venez de migrer vers Visual Studio 2017 et que votre projet est MVC4, veillez à revenir au programme d'installation VS2017 et à cocher l'option MVC4 dans la section "Développement Web ASP.NET". C'est un composant optionnel et non coché par défaut. 

Cela a résolu mon problème

2
Mike Smith

Juste pour développer la réponse de Matt DeKrey, il suffit de supprimer le fichier csproj.user (sans avoir à recréer de solutions) pour résoudre le problème.

Le seul effet secondaire que j'ai eu est que je devais réinitialiser l'action de démarrage pour utiliser une page spécifique.

1
harvyk

Récemment eu le même problème et voici comment je l'ai corrigé: Sur Visual Studio avec votre projet en question ouvert, Goto:

  1. Outils -> Gestionnaire de paquets NuGet -> Gérer les paquets NuGet pour la solution.
  2. Dans la fenêtre ouverte, sélectionnez Updates . puis cliquez sur Tout mettre à jour .

Cela chargera tout ce qui manque dans votre projet et tout devrait être remis sur les rails.

1
Donald Mkhomole

J'ai utilisé l'article suivant sur MSDN pour résoudre ce problème (dans ce cas, de MVC 4 à MVC 5)

https://docs.Microsoft.com/en-us/aspnet/mvc/overview/releases/how-tgrade-an-aspnet-mvc-4-et-web-api-project-to-aspnet mvc-5-and-web-api-2

Les principaux extraits de l'article sont: 

Main Web.config (pas celui du dossier Views)

Dans le bloc d'exécution, mettez à jour System.Web.Mvc vers 5.0.0.0, System.Web.Helpers vers 3.0.0.0 et System.Web.WebPages vers 3.0.0.0.

<dependentAssembly>
  <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

<dependentAssembly>
  <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
  <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>

Recherchez ensuite le bloc appsettings et mettez à jour les pages Web: Version value to 3.0.0.0

<appSettings>
    <add key="webpages:Version" value="3.0.0.0" />
</appSettings>

Vues Web.config

Mettez à jour le bloc host factoryType sur System.Web.Mvc vers 5.0.0.0.

<system.web.webPages.razor>
   <Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
   <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
         <add namespace="System.Web.Mvc" />
      </namespaces>
   </pages>
</system.web.webPages.razor>

Ensuite, sous le bloc de pages, mettez à jour les références à System.Web.Mvc vers 5.0.0.0.

    <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>
  </pages>

Enfin, sous le bloc de configuration, mettez à jour les références System.Web à 3.0.0.0.

<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>
1
Jflip

Je viens tout juste de commencer à examiner le problème moi-même et voici à quoi cela ressemble dans mon cas. Si vous avez les valeurs correctes dans votre configuration Web, c’est un bogue dans MVC4 . http://connect.Microsoft.com/VisualStudio/feedback/details/727729/viewbag-not-recognized-in-asp -net-mvc-4-project

0
QueueHammer
*<system.web>
<compilation debug="true" targetFramework="4.5">
    <assemblies>
        <add Assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add Assembly="System.Web.Helpers, Version=3.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.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <add Assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </assemblies>
</compilation>*

Cette configuration est manquante, ajoutez-la et définissez la version appropriée des assemblys

0
ALZ

Ma situation ne s'est produite qu'après que j'ai créé une classe personnalisée appelée BaseViewPage qui a surchargé la classe WebViewPage. J'ai initialement ajouté ce qui suit à mon fichier Main Web.confg:

<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">

Et la même chose pour le View folders web.config file:

<pages pageBaseType="ZooResourceLibrary.Web.Support.BaseViewPage">

J'ai essayé beaucoup d'autres réponses et aucune n'a réussi, tout en me permettant de garder ma classe BaseViewPage. La façon dont je l'ai corrigé consistait à supprimer l'attribut pageBaseType du fichier Main Web.config uniquement. Conservez-le dans View web.config.

0
Grandizer

J'ai rencontré ce problème spécifique aussi; pas d’intellisense (ou incorrect) lorsqu’on essaie d’utiliser des tags de rasoir. Mon problème spécifique était VS2015, se plaignant que Html.BeginForm n'existait pas dans le contexte actuel.

J'ai des zones définies dans mon projet MVC et j'ai réussi à limiter la cause de mon erreur au fichier web.config pour une zone spécifique, plutôt qu'au global web.config.

Il s’est avéré que la cause de ce problème était que j’avais ajouté une chaîne SQL connectionString dans le fichier Web.config de la zone qui ne fonctionnait pas. Cela (je suppose) a provoqué une erreur d’analyse, mais le projet a été compilé correctement .

Le déplacement de connectionString vers le global web.config a corrigé le problème. Espérons que cela puisse être utile à d’autres.

0
0xFF

Oui, j'ai essayé de résoudre ce problème depuis un moment. J'ai utilisé toutes les solutions proposées dans les différentes rubriques de Stack Overflow à ce sujet et aucune ne semblait fonctionner.

Je viens de résoudre le problème ce matin. Après avoir réparé le fichier web.config pour le projet et les vues, assurez-vous que toutes les versions .dll correspondent à ce que vous avez dans le dossier références. Vous devrez décharger le projet, modifier le fichier .csproj, puis mettre à jour toutes les versions du fichier .dll de ce fichier.

System.Web.Helpers
System.Web.Mvc
System.Web.WebPages

J'espère que cela aide, car j'ai finalement résolu ce problème! Plus de lignes ondulées rouges.

Cela a également corrigé le problème de menu contextuel que je rencontrais, je n'ai pas eu l'option d'ajouter un contrôleur, une vue, etc.

0
Pavan Dhariwal

Quant à moi, c'était une erreur de déploiement stupide: les projets Web peuvent avoir plus d'un web.config. Il travaillait sur la machine du développeur et non en production, mais nous ne réalisions pas que le script de déploiement ne saisissait que le fichier Web.config à la racine et qu'il ne copiait pas le fichier Web.config dans le dossier Views.

0
knocte

En tant que variation sur un thème, j'aurais pu jurer de haut en bas que mon Views\Web.config était correct:

<Host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

Mais j’avais en fait besoin de faire référence à Version=4.0.0.1, pas à Version=4.0.0.0, à cause de cette mise à jour de sécurité qui a été repoussée il y a longtemps.

0

J'ai trouvé plusieurs réponses dans SO et à la fin, j'ai réalisé que mon erreur était d'avoir mal orthographié "Html.TextBoxFor". Dans mon cas, j'ai écrit "Html.TextboxFor". Je n'ai pas mis le B en majuscule dans TextBoxFor. Corrigé ça et voilà. Problème résolu. J'espère que ça aidera quelqu'un.

0
Amadeus Sánchez