Я использую MVC 6 и хочу иметь глобальный доступ к определенному пространству имен из всех представлений Razor. В MVC 5 это было довольно просто; Я бы просто добавил в свой файл ~/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>
Где я добавил доступ к пространству имен MyProject.WebUI.Helpers
.
В ASP.NET 5 и, следовательно, в MVC 6 файл web.config
был удален, поэтому я не знаю, как это сделать. Я попытался найти ответ, но все, что я могу найти, - это как это сделать в текущих версиях ASP.NET, а не в v5.
Любые идеи?
Изменить: пояснил, какой файл web.config
я бы использовал.
3 ответа
Для бит <= beta3 (что вы, скорее всего, используете) вам следует добавить операторы @using
в свой _ViewStart.cshtml. Ака:
_ViewStart.cshtml: @using MyProject.WebUI.Helpers
Если у вас нет _ViewStart.cshtml, вы можете создать его и просто убедиться, что он находится на том же пути или родительском пути представления, на которое вы хотите повлиять.
Для битов beta4 эта функция была перенесена в новый файл с именем _GlobalImport.cshtml; _ViewStart.cshtml был возвращен к своей исходной функциональности (просто выполнение кода, а не наследование директив). Следовательно:
_GlobalImport.cshtml: @using MyProject.WebUI.Helpers
Для битов beta5 _GlobalImport.cshtml был переименован в _ViewImports.cshtml
Я на бета 7, и мне пришлось использовать
@using System.Security.Principal
@using System.Security.Claims
@Context.User.GetUserId()
Добавьте свои пространства имен в файл _ViewImports.cshtml
(он находится в папке "Просмотры").
Пример файла:
@using Microsoft.AspNetCore.Identity
@using Jifiti.Registry.Web.Models.AccountViewModels
@using Jifiti.Registry.Web.Models.ManageViewModels
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
Похожие вопросы
Новые вопросы
asp.net-core
ASP.NET Core — это компактная, компонуемая и кроссплатформенная платформа для создания веб-приложений и облачных приложений. Это полностью открытый исходный код на GitHub. Приложения ASP.NET Core можно запускать в Windows, Linux или macOS.