146 votes

Comment faire pour ajouter des espaces de noms supplémentaires vers des pages de rasoir au lieu de la déclaration de @using ?

Est-il une sorte de magie que je dois utiliser pour obtenir les espaces de noms dans le `` element dans le webconfig ?

Le juste ci-dessus ne veut pas travailler. Je sais que l’espace de noms est très bien parce que quand j’ai mis le `` en haut de la page, cela fonctionne comme par magie.

C’est pour que je puisse obtenir la de travailler sans avoir à mettre en haut de toutes mes pages

163voto

marcind Points 38002

Mise à jour: veuillez jeter un oeil à ma mise à jour de la réponse qui s'applique à la MVC 3 RC: Rasoir (MVC 3 RC) HtmlHelper Extensions Non Trouvé

Ce qui a changé entre MVC 3 Preview 1 et MVC 3 Beta (sorti aujourd'hui). Dans l'Aperçu 1 Rasoir utilisé les Formulaires des espaces de noms de section de configuration. Cependant dans la version Bêta il y a une nouvelle section de configuration qui est séparé de la WebForms. Vous aurez besoin d'ajouter les suivants à votre site web.fichier de configuration (ou tout simplement commencer avec un tout nouveau projet à partir du modèle):

<configSections>
  <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
    <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
    <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
  </sectionGroup>
</configSections>

<system.web.webPages.razor>
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="MyCustomHelpers" />
    </namespaces>
  </pages>
</system.web.webPages.razor>

Notez que vous devrez peut-être fermer et rouvrir le fichier pour que les modifications soient repris par l'éditeur.

Notez qu'il y a d'autres changements à ce qui est requis dans le web.config pour obtenir de Rasoir pour travailler dans MVC3 Bêta de sorte que vous serait mieux de prendre un coup d'oeil à l' ~\View\Web.config le fichier fourni dans la version Bêta des modèles de projet.

50voto

BuildStarted Points 15931

Si vous mettez votre déclaration d’espace de noms dans la `` dans le dossier de « Vues » racine et/ou dossier « Vues » de la zone actuelle (selon l’endroit où votre vue) - il doit fonctionner comme prévu.

6voto

k-dev Points 875

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é pour tous vos rasoir pages.

Fondamentalement, vous pouvez faire ce

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

et de mettre le code suivant dans votre AssemblyInfo.cs

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

la méthode InitializeApplication sera exécutée avant la Application_Start mondiale.asax

4voto

Peter Points 873

Pour ce que ça vaut, une autre technique consiste à simplement mettre votre classe d’extension d’assistance dans un espace de noms System qui est déjà inclus par le moteur d’affichage par défaut. Par exemple :

De cette façon, tant que la bibliothèque qui contient la classe est référencée, tout ce que pourrez voir il. Étant donné que vous étendez un `` classe, il semble raisonnablement acceptable de mettre les méthodes d’extension dans le même espace de noms.

Prograide.com

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.

Powered by:

X