/ / Bibliothèques personnalisées avec Razor dans MVC 3 - c #, asp.net-mvc, asp.net-mvc-3, rasoir

Bibliothèques personnalisées avec Razor dans MVC 3 - c #, asp.net-mvc, asp.net-mvc-3, rasoir

Je développe donc une bibliothèque interne pour MVC 3 et je souhaite l’ajouter à mon projet.

Je l'ai ajouté à mon web.config. J'ai ajouté l'assembly et l'ajouté aux pages -> section des espaces de noms et ... non. Ça ne marche pas.

J’ai essayé de recompiler, etc ... mais Razor n’aime pas du tout. Ce n’est pas un problème d’intellisense ... le site ne peut pas être exécuté si j’utilise mon espace de noms défini.

La seule façon pour que cela fonctionne est d'utiliser les déclarations suivantes:

@using Sample.Helpers

Je ne veux pas l’utiliser dans les pages. Je veux pouvoir le déployer dans de nombreux projets et l’ajouter à web.config est définitivement la voie à suivre.

Quelqu'un a rencontré ce problème?

Réponses:

10 pour la réponse № 1

Vous devez l'ajouter dans le ~/Views/web.config car Razor utilise une section de configuration différente:

<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" />
<add namespace="YourNamespaceContainingTheHelperMethod" />
</namespaces>
</pages>
</system.web.webPages.razor>

5 pour la réponse № 2

Razor utilise une section de configuration différente

 <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>
<pages pageBaseType="Foo.Bar">
<namespaces>
<add namespace="Foo.FooBar" />
</namespaces>
</pages>
</system.web.webPages.razor>