2015-02-25 9 views
18

Sto utilizzando MVC 6 e vorrei poter accedere a un determinato spazio dei nomi globalmente da tutte le mie viste Razor. In MVC 5 questo era abbastanza semplice; Avevo solo aggiungere il seguente codice al mio file ~/views/web.config:Aggiungi spazio nomi a tutte le viste in 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> 

Dove ho accesso al MyProject.WebUI.Helpers namespace aggiunto.

In ASP.NET 5, e quindi MVC 6, il file web.config è stato eliminato, quindi non sono sicuro di come procedere. Ho provato a cercare una risposta, ma tutto quello che posso trovare è come farlo nelle versioni correnti di ASP.NET piuttosto che in v5.

Qualche idea?

Modifica: Chiarito quale file web.config avrei usato.

+1

dove ha fatto si aggiunge questo spazio dei nomi ~/web.config o ~/views/web.config? –

+1

Questo sarebbe stato in '' '~/views/web.config''', ma ASP.NET 5 non usa affatto i file' '' web.config''', quindi non ho idea di cosa ho bisogno aggiungere o anche dove ho bisogno di aggiungerlo. –

+1

Se aggiungi questi file nel file ~/views/web.config, scarica il tuo progetto e successivamente prova a ricaricare. –

risposta

25

Per < = bit beta3 (quello che si sta utilizzando più probabilmente) è necessario aggiungere una dichiarazione @using al proprio _ViewStart.cshtml. Aka:

_ViewStart.cshtml: @using MyProject.WebUI.Helpers

Se non si dispone di un _ViewStart.cshtml è possibile creare uno e basta assicurarsi che sia nello stesso percorso o il genitore percorso della vista che si desidera modificare.

Per i bit beta4, questa funzionalità è stata spostata in un nuovo file denominato _GlobalImport.cshtml; _ViewStart.cshtml è stato ricollegato alla sua funzionalità originale (solo eseguendo il codice, non ereditando le direttive). Pertanto:

_GlobalImport.cshtml: @using MyProject.WebUI.Helpers

Per bit beta5, _GlobalImport.cshtml stato rinominato in _ViewImports.cshtml

+0

Eccellente. Esattamente quello che dovevo sapere, grazie! –

+1

in Beta5 è '_ViewImports.cshtml' https: // github.it/aspnet/Annunci/problemi/27 –

+0

Sembra ridondante avere sia _ViewStart che _ViewImports. – WillC

0

sono in beta 7 e ho dovuto usare

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

@Context.User.GetUserId() 
6

Aggiungi i tuoi spazi dei nomi al file _ViewImports.cshtml (si trova sotto la cartella Visualizzazioni).

di file Esempio:

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

@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers