2010-11-04 3 views
1

Je viens de tenter de construire un nouveau projet MVC avec Razor Views en utilisant notre script de build standard (rake, mais c'est pas important). Lorsque j'ai développé le projet, j'ai remarqué que Razor ne respecte pas actuellement les importations d'espace de noms dans web.config, mais vous permet d'inclure des espaces de noms dans global.asax. Je suis vraiment plus heureux avec cela car je ne vois pas le besoin de pouvoir configurer vos importations si cela casse votre application entière. Toutefois, lorsque vous utilisez aspnet_compiler pour compiler le site Web, il ne lance pas global.asax et n'importent donc pas les espaces de noms, et aucune vue ne sera compilée. Y a-t-il un moyen de contourner cela? Idéalement, je voudrais essayer de compiler mes vues dans le script de construction pour attraper les erreurs le plus rapidement possible, mais à ce stade, je serais content de pouvoir publier le site à partir d'un build scénario.aspnet_compiler ne peut pas compiler un projet web qui contient des vues Razor, si les importations d'espace de noms du moteur de vue sont définies dans global.asax

Répondre

4

Voir cette réponse:

How to add extra namespaces to Razor pages instead of @using declaration?

En un mot, le moteur de vue Razor a sa propre section de configuration où vous pouvez importer les espaces de noms que vous voulez faire référence dans les vues Razor.

<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="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     <add namespace="MyCustomHelpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 
Questions connexes