Risposte:
Finalmente ho trovato la risposta.
@using MyNamespace
Per VB.Net:
@Imports Mynamespace
Dai un'occhiata alla risposta di @ravy amiry se desideri includere uno spazio dei nomi nell'app.
Il primo modo è utilizzare questa @using
istruzione nei .cshtml
file, che importa uno spazio dei nomi solo nel file corrente e il secondo:
Nel file "web.config" nella Views
directory " " del tuo progetto (nota che non è il web.config principale nella radice del progetto) , trova questa sezione:
<system.web.webPages.razor>
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
.
.
<!-- etc -->
</namespaces>
</pages>
</system.web.webPages.razor>
puoi aggiungere il tuo spazio dei nomi personalizzato in questo modo:
<add namespace="My.Custom" />
che aggiungerà lo spazio dei nomi a tutti i file .cshtml (e / o .vbhtml); inoltre puoi modificare l'ereditarietà delle viste da qui, come:
<pages pageBaseType="My.Custom.MyWebViewPage">
Saluti.
AGGIORNAMENTO: Grazie a @ Nick Silberstein
per il suo promemoria sulle aree! Egli ha detto:
Se lavori all'interno di un'area , devi aggiungere namespace
all'interno di Web.config
sotto /Areas/<AreaName>/Views/
anziché
/Views/
Per la biblioteca
@using MyNamespace
Per modello
@model MyModel
using
L'all'inizio di un file con estensione cs è una parola chiave compilatore C #. L' @using
inizio di un file .cshtml è un suggerimento per il motore del modello Razor.
In ASP.NET MVC 3 Preview1 è possibile importare uno spazio dei nomi su tutte le viste del rasoio con questo codice in Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
Spero che in RTM questo venga fatto attraverso la sezione Web.config.
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 tuo rasoio.
Fondamentalmente puoi farlo
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
e inserisci il seguente codice in AssemblyInfo.cs
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
il metodo InitializeApplication verrà eseguito prima di Application_Start in global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
stata cambiata in System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Un problema che devi sapere è che quando importi uno spazio dei nomi web.config
nella Views
cartella, namespace
viene importato SOLO per le viste in quella cartella . Significa che se si desidera importare una vista namespace
in un'area , è necessario importare anche quella namespace
, nel web.config
file di quell'area , situata nella Views
cartella dell'area ;
Per spazio dei nomi e libreria
@using NameSpace_Name
Per modello
@model Application_Name.Models.Model_Name
Per scorrere l'elenco nella pagina Rasoio (devi usare foreach loop per accedere alle voci dell'elenco)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Puoi provare questo
@using MyNamespace
Penso che per importare lo spazio dei nomi in vista rasoio, devi solo aggiungere il seguente modo:
@using XX.YY.ZZ
A seconda delle necessità, è possibile utilizzare uno dei seguenti metodi:
se richiesto in tutte le visualizzazioni successive, aggiungere "using your.domainName;" in _ViewStart.cshtml. Puoi trovare ulteriori informazioni al riguardo in: Dove e come è collegato il file di layout _ViewStart.cshtml?
Oppure aggiungi il riferimento Assembly in Visualizza web.config come descritto da altri spiegati in: Come si implementa un @using in tutte le viste in Asp.Net MVC 3?