我刚刚尝试使用我们的标准构建脚本(rake,但这并不重要)使用Razor Views构建一个新的MVC项目。
当我开发项目时,我注意到Razor当前不尊重web.config中的命名空间导入,但允许您在global.asax中包含命名空间。我真的很高兴这个,因为我认为没有必要能够配置你的导入,如果它然后打破你的整个应用程序。
但是,当使用aspnet_compiler编译网站时,它不会运行global.asax,因此不会导入名称空间,也不会编译任何视图。有没有办法解决这个问题,理想情况下我想尝试将我的视图编译为构建脚本的一部分以尽快捕获错误,但在此阶段我很高兴能够从构建中发布网站脚本。
答案 0 :(得分:4)
看到这个答案:
How to add extra namespaces to Razor pages instead of @using declaration?
简而言之,Razor视图引擎有自己的配置部分,您可以在其中导入要在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>
答案 1 :(得分:0)
您可以尝试使用PreAppStart方法:http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx。