/ / Bibliotecas personalizadas con Razor en MVC 3 - c #, asp.net-mvc, asp.net-mvc-3, razor

Bibliotecas personalizadas con Razor en MVC 3 - c #, asp.net-mvc, asp.net-mvc-3, navaja de afeitar

Así que estoy desarrollando una biblioteca interna para MVC 3 y quiero agregarla a mi proyecto.

Lo agregué a mi web.config. Agregué el ensamblaje y lo agregué a las páginas -> sección de espacios de nombres y ... no. No funciona

Intenté recompilar, etc. pero a Razor no le gusta en absoluto. No es un problema inteligente ... el sitio no puede ejecutarse si uso mi espacio de nombres definido.

La única forma en que lo hice funcionar fue usando las siguientes declaraciones:

@using Sample.Helpers

No quiero usarlo en las páginas. Quiero poder implementarlo en muchos proyectos y agregarlo a la web.config es definitivamente el camino a seguir.

¿Alguien se topó con este problema?

Respuestas

10 por respuesta № 1

Necesitas agregarlo en el ~/Views/web.config porque Razor usa una sección de configuración diferente:

<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 para la respuesta № 2

Razor usa una sección de configuración diferente

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