Come posso importare uno spazio dei nomi in Razor View Page?

Come importare un namespace in Razor View Page?

Finalmente trovato la risposta.

@using MyNamespace 

Per VB.Net:

 @Imports Mynamespace 

Dai un’occhiata alla risposta di @ Javad_Amiry se vuoi includere uno spazio nomi attraverso l’app.

Il primo modo è utilizzare @using istruzione @using nei file .cshtml , che importa solo uno spazio dei nomi nel file corrente e il secondo:

Nel file “web.config” nella directory ” Views ” del tuo progetto (nota che non è il web.config principale nella root del progetto) , trova questa sezione:

      . .     

puoi aggiungere il tuo spazio dei nomi personalizzato in questo modo:

  

che aggiungerà lo spazio dei nomi a tutti i file .cshtml (e / o .vbhtml); puoi anche modificare l’ereditarietà delle visualizzazioni da qui, ad esempio:

  

Saluti.


AGGIORNAMENTO: Grazie a @ Nick Silberstein al suo promemoria sulle aree! Egli ha detto:

Se lavori all’interno di un’area , devi aggiungere lo namespace dei namespace all’interno di Web.config in /Areas//Views/ piuttosto che /Views/

In ASP.NET MVC 3 Preview1 puoi importare uno spazio dei nomi su tutte le tue visualizzazioni del razor con questo codice in Global.asax.cs

 Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace"); 

Spero che in RTM ciò avvenga tramite la sezione Web.config.

Per la biblioteca

 @using MyNamespace 

Per modello

 @model MyModel 

Ho trovato questo http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx che spiega come aggiungere uno spazio dei nomi personalizzato a tutte le pagine del razor.

Fondamentalmente puoi farlo

 using Microsoft.WebPages.Compilation; public class PreApplicationStart { public static void InitializeApplication() { CodeGeneratorSettings.AddGlobalImport("Custom.Namespace"); } } 

e inserisci il seguente codice nel tuo AssemblyInfo.cs

 [assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")] 

il metodo InitializeApplication verrà eseguito prima di Application_Start in global.asax

Un problema che è necessario conoscere è che quando si importa uno spazio dei nomi tramite web.config nella cartella Views , tale namespace viene importato JUST per le viste in tale cartella . Significa che se si desidera importare uno namespace dei namespace in una vista area , è necessario importare anche tale namespace dei namespace , nel file web.config dell’area, situato nella cartella Views della zona;

Puoi provare questo

 @using MyNamespace 

“using MyNamespace” funziona in MVC3 RTM. Spero che questo ti aiuti.

Penso che nell’importazione del namespace nella vista del razor, devi solo aggiungere sotto:

 @using XX.YY.ZZ 

Per spazio dei nomi e libreria

 @using NameSpace_Name 

Per modello

 @model Application_Name.Models.Model_Name 

Per Iterare l’elenco sulla pagina del razor (È necessario utilizzare il ciclo foreach per accedere agli elementi dell’elenco)

 @model List @foreach (var item in Model) {  @item.srno @item.name  }