Подтвердить что ты не робот

Как добавить "использование по умолчанию" на все страницы cshtml?

Я создаю свое первое приложение MVC.Net, и я нахожу себя в том числе @using Gideon.Core.Mvc; почти на каждой странице. Можно ли добавить его по умолчанию ко всем страницам?

В Asp.Net я могу добавить материал по умолчанию для элементов управления в web.config, надеюсь, это можно сделать и для MVC.Net.

4b9b3361

Ответ 1

Вы можете добавить их в раздел <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.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Routing" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

Ответ 2

Добавьте их в 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>

Ответ 3

Поскольку этот вопрос высок в google, позвольте мне добавить альтернативное решение, совместимое с областью.

Создайте новый класс под названием 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 файл в каждой области.

Ответ 4

Для .Net Core Users, если вы создаете веб-проект в ваниле, вы можете импортировать пространства имен по умолчанию, добавив

_ViewImports.cshtml

Файл в папке Pages.

И определите пространства имен по умолчанию внутри.

@using test
@namespace test.Pages