2015-02-25 2 views
18

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

<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 файл Я бы использовал.

+1

где вы добавили это пространство имен ~/web.config или ~/Views/web.config? –

+1

Это было бы в '' '~/views/web.config''', но ASP.NET 5 вообще не использует файлы' '' web.config'', поэтому я понятия не имею, что мне нужно добавить или даже туда, где мне нужно добавить его. –

+1

Если вы добавите эти файлы в файл ~/views/web.config, выгрузите проект и попробуйте перезагрузить его после этого. –

ответ

25

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

_ViewStart.cshtml: @using MyProject.WebUI.Helpers

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

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

_GlobalImport.cshtml: @using MyProject.WebUI.Helpers

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

+0

Отлично. Именно то, что мне нужно было знать, спасибо! –

+1

в Beta5 - '_ViewImports.cshtml' https: // github.com/aspnet/Анонсы/проблемы/27 –

+0

Кажется излишним иметь как _ViewStart, так и _ViewImports для меня. – WillC

0

Я на бета-7, и я должен был использовать

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

@Context.User.GetUserId() 
6

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

Пример файла:

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

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 
Смежные вопросы