有和没有pageBaseType的页面配置部分之间有什么区别

时间:2011-11-08 14:38:19

标签: asp.net-mvc asp.net-mvc-3

我在所有网页上使用Razor。在我的全球web.config中,我有以下内容:

 <system.web>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
      </namespaces>
    </pages>
  </system.web>

在我的本地(查看)web.configs中我有:

  <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="MyApp.WebUx.Helpers" />
        <add namespace="MyApp.Storage.Models" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>

我想让事情变得尽可能高效和干净,所以我需要拥有第一部分还是剃刀部分?

1 个答案:

答案 0 :(得分:0)

如果您在这些程序集的视图中使用任何类,则需要这些名称空间。对于页面基本类型为System.Web.Mvc.WebViewPage的每个视图,本质上是全局包含/使用语句。

如果删除它们,则需要手动导入程序集命名空间。请参阅this post了解具体方法。