Comment importer un espace de nom dans Razor View Page ?
Aussi : Ils ne peuvent pas aller dans les blocs de code. (Vous obtiendrez une erreur d'exécution).
Comment importer un espace de nom dans Razor View Page ?
J'ai enfin trouvé la réponse.
@using MyNamespace
Pour VB.Net :
@Imports Mynamespace
Jetez un coup d'œil à La réponse de @ravy amiry si vous voulez inclure un espace de nom dans toute l'application.
Aussi : Ils ne peuvent pas aller dans les blocs de code. (Vous obtiendrez une erreur d'exécution).
La première façon est d'utiliser @using
déclaration dans .cshtml
qui importe un espace de nom dans le fichier courant uniquement, et le second :
Dans le fichier "web.config", dans " Views
"de votre projet (remarquez que c'est no le web.config principal dans 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 nom personnalisé comme ceci :
<add namespace="My.Custom" />
qui ajoutera l'espace de nom à tous les fichiers .cshtml (et/ou .vbhtml) ; Vous pouvez également modifier l'héritage des vues à partir d'ici, par exemple :
<pages pageBaseType="My.Custom.MyWebViewPage">
Regards.
UPDATE : Merci à @ Nick Silberstein
à son rappel sur les zones ! Il a dit :
Si vous travaillez au sein d'une zone vous devez ajouter l'élément namespace
au sein de la Web.config
sous /Areas/<AreaName>/Views/
plutôt que /Views/
@vtortola : quel web.config ? le fichier web.config dans le dossier Views, pas le web.config principal dans le dossier Root. ok ?
J'espère éviter à quelqu'un de s'arracher les cheveux pendant quelques minutes en lui disant que si vous travaillez dans une zone, vous devez ajouter l'espace de nom dans le Web.config sous /Areas/<AreaName>Views/ plutôt que /Views/.
Il y aura une section web.config dans la RTM, mais nous avons également voulu fournir une API pour le faire, car de nombreux utilisateurs commencent à s'éloigner de la configuration. Les deux options sont donc disponibles pour vous !
Depuis ASP.NET MVC 3 Beta, cette méthode ne fonctionne plus. Il y a une nouvelle section web.config comme expliqué ici stackoverflow.com/questions/3875207/ . La méthode AddGlobalImport permettant d'importer un espace de nom global dans toutes les vues a été déplacée vers cette classe System.Web.WebPages.Razor.WebPagesRazorHost.
J'ai trouvé ceci http://weblogs.asp.net/mikaelsoderstrom/archive/2010/07/30/add-namespaces-with-razor.aspx qui explique comment ajouter un espace de nom personnalisé à toutes vos pages razor.
En gros, vous pouvez faire ça
using Microsoft.WebPages.Compilation;
public class PreApplicationStart
{
public static void InitializeApplication()
{
CodeGeneratorSettings.AddGlobalImport("Custom.Namespace");
}
}
et mettez 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
Il s'agit en fait d'une assez bonne réponse, mais l'emplacement des Microsoft.WebPages.Compilation.AddGlobalImport
a été changé en System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport
.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
6 votes
Vous pouvez également ajouter des alias à votre espace de noms importé stackoverflow.com/questions/4798293/mvc3-import-namespace/