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

Добавление пространства имен ко всем представлениям в ASP.NET MVC 6

Im использует MVC 6 и хочет иметь доступ к определенному пространству имен глобально из всех моих представлений Razor. В MVC 5 это было довольно просто; Id просто добавьте следующий код в мой файл ~/views/web.config:

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.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.Optimization"/>
            <add namespace="System.Web.Routing" />
            <add namespace="MyProject.WebUI" />
            <add namespace="MyProject.WebUI.Helpers" /><!-- Added this line -->
        </namespaces>
    </pages>
</system.web.webPages.razor>

Где Ive добавил доступ к пространству имен MyProject.WebUI.Helpers.

В ASP.NET 5 и, следовательно, MVC 6, файл web.config устранен, поэтому я не уверен, как это сделать. Ive попытался найти ответ, но все, что я могу найти, это как это сделать в текущих версиях ASP.NET, а не v5.

Любые идеи?

Изменить: Уточненный файл web.config, который я использовал бы.

4b9b3361

Ответ 1

Для <= beta3 бит (что, скорее всего, вы используете), вы должны добавить операторы @using в свой _ViewStart.cshtml. Ака:

_ViewStart.cshtml: @using MyProject.WebUI.Helpers

Если у вас нет _ViewStart.cshtml, вы можете создать его и просто убедиться, что он находится в том же пути или родительском пути представления, на которое вы хотите повлиять.

Для бета-бит эта функция была перенесена в новый файл с именем _GlobalImport.cshtml; _ViewStart.cshtml был перенесен обратно в исходную функциональность (только запуск кода, а не наследование директив). Поэтому:

_GlobalImport.cshtml: @using MyProject.WebUI.Helpers

Для бета5 бит _GlobalImport.cshtml был переименован в _ViewImports.cshtml

Ответ 2

Добавьте пространства имен в файл _ViewImports.cshtml (он находится в папке "Представления" ).

Файл примера:

@using Microsoft.AspNetCore.Identity
@using Jifiti.Registry.Web.Models.AccountViewModels
@using Jifiti.Registry.Web.Models.ManageViewModels

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

Ответ 3

Я на бета-версии 7, и мне пришлось использовать

@using System.Security.Principal
@using System.Security.Claims

@Context.User.GetUserId()