今天我注意到所有我的Razor视图都导入了例如"System"和"System.Web.Security",尽管我没有积极地导入它们。我检查了:
看来这些命名空间的导入被硬编码在Razor源代码中。 https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.WebPages.Razor/WebPageRazorHost.cs
似乎我无法通过在web.config开头设置“clear”来禁用它们。
所以,除非改变 Razor 源代码,否则这个问题可能无法修复。
- @using指令
- web.config(编辑:还包括全局web.config)
- AddGlobalImport
看来这些命名空间的导入被硬编码在Razor源代码中。 https://github.com/ASP-NET-MVC/aspnetwebstack/blob/master/src/System.Web.WebPages.Razor/WebPageRazorHost.cs
private WebPageRazorHost()
{
NamespaceImports.Add("System");
NamespaceImports.Add("System.Collections.Generic");
NamespaceImports.Add("System.IO");
NamespaceImports.Add("System.Linq");
NamespaceImports.Add("System.Net");
NamespaceImports.Add("System.Web");
NamespaceImports.Add("System.Web.Helpers");
NamespaceImports.Add("System.Web.Security");
NamespaceImports.Add("System.Web.UI");
NamespaceImports.Add("System.Web.WebPages");
NamespaceImports.Add("System.Web.WebPages.Html");
// ...
}
似乎我无法通过在web.config开头设置“clear”来禁用它们。
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage" >
<namespaces>
<clear />
<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.webPages.razor>
所以,除非改变 Razor 源代码,否则这个问题可能无法修复。