7
votes

Obtenir System.web.Oplization Pour travailler dans une vue Razor dans une bibliothèque de classe

Je construis une application MVC4 modulaire, où chaque module (= zone) est une bibliothèque de classe. Les modèles et les contrôleurs compilent dans le fichier .dll, les vues sont copiées dans le dossier approprié. Au moment de l'exécution, tout fonctionne bien. Au moment de la conception, il y a un problème gênant à gauche: lors de la modification d'une vue de rasoir dans une bibliothèque de classe, Visual Studio ne reconnaît pas l'espace de noms System.Web.Optimization. XXX

J'ai essayé d'ajouter l'assemblage à la section System.Web / Compilation de la racine et de la web.config: xxx

Je l'ai essayé sans la version spécifique aussi. Les deux méthodes n'ont pas résolu le problème, mais ont déclenché une erreur d'exécution ASP.NET (visible dans la première ligne de la vue Razor): xxx

L'ensemble est référencé dans la Le projet et la «copie locale» est défini sur «vrai». Il est également ajouté comme un espace de noms dans la section de configuration de rasoir.

Je soupçonne que c'est un problème général, je rencontrerai avec d'autres assemblages à l'avenir.

edit: J'ai fait la configuration générale pour que Intellisense se passe dans une vue de rasoir dans une bibliothèque de classe. Tout fonctionne jusqu'à présent, sauf que VS2010 ne reconnaisse pas l'espace de nom d'optimisation.


0 commentaires

5 Réponses :


7
votes

Ajouter un Web.config code> à la racine de votre projet de bibliothèque de classe (celui qui contient les vues de rasoir) avec le contenu suivant (extrait de Ce blog post a >):

<configuration>
  <configSections>
    <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.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=4.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>
  </system.web.webPages.razor>

  <system.web>
    <compilation targetFramework="4.0">
      <assemblies>
        <add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </assemblies>
    </compilation>
  </system.web>
</configuration>


4 commentaires

Je l'ai déjà fait ça. Intellisense fonctionne bien, à l'exception de l'espace de noms System.Web.Optimization.


Avez-vous remarqué dans mon exemple? L'avez-vous dans la tienne?


Oui j'ai. J'ai oublié de mentionner que dans la question, désolé!


Ajout à Vues / Web.Config a résolu mon problème. Merci



7
votes

J'ai eu cette erreur dans la vue pré-constructive du projet ASP MVC Pour résoudre, j'ai installé Microsoft.Web.Optimization avec Nuget.

Dans le menu Outils, sélectionnez Gestionnaire de packages de la bibliothèque, puis sur la console de gestionnaire de packages. Entrez la commande suivante pour mettre à jour le support et la minirographie: xxx

quelques éventuelles ici http://forums.asp.net/1812274.aspx/1


1 commentaires

Où dois-je entrer dans ce paquet d'installation?



1
votes

@Vladimir, j'utilise Visual Studio 2013 et devait changer légèrement votre ligne à:

Installation-package Microsoft.aspnet.web.Optimization

Ceci corrigé pour moi.


0 commentaires

0
votes

Les éléments suivants: xxx

fonctionne bien pour moi.


0 commentaires

0
votes
Install-Package Microsoft.AspNet.Web.Optimization -version 1.1.0.0
if your project needs specified version, please add -version... for choosing the true version. It will be helpful for you.

0 commentaires