Réponses:
Enfin trouvé la réponse.
@using MyNamespace
Pour VB.Net:
@Imports Mynamespace
Jetez un œil à la réponse de @ravy amiry si vous souhaitez inclure un espace de noms dans l'application.
La première méthode consiste à utiliser l' @using
instruction dans les .cshtml
fichiers, à importer un espace de noms uniquement dans le fichier actuel, et la seconde:
Dans le fichier "web.config" du répertoire " Views
" de votre projet (notez qu'il ne s'agit pas du web.config principal à la racine du projet) , trouvez cette section:
<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>
vous pouvez ajouter votre espace de noms personnalisé comme ceci:
<add namespace="My.Custom" />
qui ajoutera l'espace de noms à tous les fichiers .cshtml (et / ou .vbhtml); vous pouvez également modifier l'héritage des vues à partir d'ici, comme:
<pages pageBaseType="My.Custom.MyWebViewPage">
Cordialement.
MISE À JOUR: Merci à @ Nick Silberstein
pour son rappel sur les zones! Il a dit:
Si vous travaillez dans une zone , vous devez ajouter le namespace
dans le Web.config
sous /Areas/<AreaName>/Views/
plutôt que
/Views/
Pour la bibliothèque
@using MyNamespace
Pour le modèle
@model MyModel
using
début d'un fichier .cs est un mot clé du compilateur C #. Le @using
début d'un fichier .cshtml est une indication du moteur de modèle Razor.
Dans ASP.NET MVC 3 Preview1, vous pouvez importer un espace de noms sur toutes vos vues de rasoir avec ce code dans Global.asax.cs
Microsoft.WebPages.Compilation.CodeGeneratorSettings.AddGlobalImport("Namespace.Namespace");
J'espère qu'en RTM, cela se fait via la section Web.config.
J'ai trouvé ce http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx qui explique comment ajouter un espace de noms personnalisé à toutes vos pages de rasoir.
Fondamentalement, vous pouvez faire cela
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
et placez le code suivant dans votre AssemblyInfo.cs
[assembly: PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
la méthode InitializeApplication sera exécutée avant Application_Start dans global.asax
Microsoft.WebPages.Compilation.AddGlobalImport
été changé pour System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Un problème que vous devez savoir est que lorsque vous importez un espace de noms via web.config
dans le Views
dossier, celui-ci namespace
est importé JUSTE pour les vues dans ce dossier . Signifie que si vous souhaitez importer une vue namespace
dans une zone , vous devez également importer celle namespace
, dans le web.config
fichier de cette zone , située dans le Views
dossier de la zone ;
Pour l'espace de noms et la bibliothèque
@using NameSpace_Name
Pour le modèle
@model Application_Name.Models.Model_Name
Pour itérer la liste sur la page Razor (vous devez utiliser une boucle foreach pour accéder aux éléments de la liste)
@model List<Application_Name.Models.Model_Name>
@foreach (var item in Model)
{
<tr>
<td>@item.srno</td>
<td>@item.name</td>
</tr>
}
Vous pouvez essayer ceci
@using MyNamespace
Je pense que pour importer l'espace de noms en vue rasoir, il vous suffit d'ajouter ci-dessous:
@using XX.YY.ZZ
Selon vos besoins, vous pouvez utiliser l'une des méthodes suivantes:
si nécessaire dans toutes les vues suivantes, ajoutez "using your.domainName;" dans _ViewStart.cshtml. Vous pouvez trouver plus d'informations à ce sujet dans: Où et comment le fichier de disposition _ViewStart.cshtml est-il lié?
Ou ajoutez une référence d'assembly dans View web.config comme décrit par d'autres expliqués dans: Comment implémentez-vous un @using dans toutes les vues dans Asp.Net MVC 3?