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

发布于 2024-11-07 18:49:54 字数 202 浏览 0 评论 0原文

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

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

I'm creating my first MVC.Net application and I find myself including @using Gideon.Core.Mvc; on almost every page. Is it possible to add it by default to all pages?

In Asp.Net I'm able to add default stuff for controls to the web.config, hopefully it can be done for MVC.Net as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

冬天旳寂寞 2024-11-14 18:49:54

您可以将它们添加到 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.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

You can add them in the <system.web.webPages.razor> section in Views/Web.config.

Here is the default:

<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>
灰色世界里的红玫瑰 2024-11-14 18:49:54

将它们添加到 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>

Add them in the Views/Web.config. Add your namespace to the bottom:

<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>
同尘 2024-11-14 18:49:54

对于 .Net Core 用户,如果您创建普通 Web 项目,则可以通过

_ViewImports.cshtml

在 Pages 文件夹中添加文件来导入默认命名空间。

并在其中定义默认名称空间。

@using test
@namespace test.Pages

For .Net Core Users if you create a vanilla web project you can import default namespaces by adding the

_ViewImports.cshtml

File within your Pages folder.

And define your default namespaces within.

@using test
@namespace test.Pages
懵少女 2024-11-14 18:49:54

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

创建一个名为 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 文件。

Since this question is high on google, let me add an alternative solution which is area compatible.

Create a new class called PreApplicationStart (or any other name you want).

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

In Properties\AssemblyInfo.cs add following line:

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

With this the namespace is available in every view in the project (including views within areas). Adding the namespace to web.config has this flaw, that if you use areas, you end up having to add the namespace to every web.config file in each area.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文