单个 using 语句,多个 MVC 视图

Single using statement, multiple MVC views

我已经编写了一些扩展方法(HTML 帮助程序)并希望在多个视图中使用它们,这...

@using My.Extensions.Namespace

@Html.MyExtension()

...显然有效。但这意味着在每个视图中都包含 using 语句(会有很多)。

如果这是唯一的方法,那很好,但我很想知道是否有一种方法可以使用此命名空间 'globally' 而无需在每个单独的视图中声明它。

您可以通过 Views 文件夹中的 webconfig 文件包含它:

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        ...
        <add namespace="My.Extensions.Namespace"/>
      </namespaces>
    </pages>
  </system.web.webPages.razor>

我们需要在 Razor 视图中引用的每个命名空间都需要以这种方式声明,或者在视图本身中使用 @using 语句声明。