繁体   English   中英

如何在所有cshtml页面中添加“默认使用”?

[英]How to add a 'default using' to all cshtml pages?

我正在创建我的第一个MVC.Net应用程序,我发现自己包括@using Gideon.Core.Mvc; 在几乎每一页上。 是否可以将其默认添加到所有页面?

在Asp.Net中,我可以为web.config添加控件的默认内容,希望它也可以为MVC.Net完成。

您可以在Views/Web.config<system.web.webPages.razor>部分中添加它们。

这是默认值:

<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" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

Views/Web.config添加它们。 将名称空间添加到底部:

<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.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" />
            <add namespace="Gideon.Core.Mvc" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

对于.Net核心用户,如果您创建一个vanilla Web项目,则可以通过添加来导入默认名称空间

_ViewImports.cshtml

在Pages文件夹中的文件。

并定义您的默认命名空间。

@using test
@namespace test.Pages

由于这个问题在谷歌上很高,让我添加一个区域兼容的替代解决方案。

创建一个名为PreApplicationStart的新类(或您想要的任何其他名称)。

public class PreApplicationStart
{
    public static void InitializeApplication()
    {
        System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport("insert.your.namespace.here");
    }
}

Properties\\AssemblyInfo.cs添加以下行:

[assembly: System.Web.PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]

有了这个,命名空间就可以在项目的每个视图中使用(包括区域内的视图)。 将命名空间添加到web.config有这个缺陷,如果你使用区域,你最终必须将命名空间添加到每个区域中的每个web.config文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM