1

默认情况下,System.Web.UI命名空间是在 Razor 模板中导入的。

我怎样才能避免这种情况?

4

1 回答 1

1

我不确定这是否是你所追求的,但我做了一个快速的实验。我认为它有效。

我稍微扩展了 MvcWebRazorHostFactory。新工厂基本上沿用了基类创建的宿主,但首先移除了命名空间。

这是课程:

namespace TestCode
{
    using System.Web.WebPages.Razor;
    using System.Web.Mvc;
    using System.Web.Mvc.Razor;

    public class CustomWebRazorHostFactory : MvcWebRazorHostFactory
    {
        public override WebPageRazorHost CreateHost(string virtualPath, string physicalPath)
        {
            WebPageRazorHost host = base.CreateHost(virtualPath, physicalPath);
            host.NamespaceImports.Remove("System.Web.UI");
            return host;
        }
    }
}

然后我更改了 web.config 以使用我的工厂而不是标准的:

<system.web.webPages.razor>
    <!--<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />-->
    <host factoryType="TestCode.CustomWebRazorHostFactory" />

答对了!

于 2013-08-15T02:21:01.470 回答