IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Créer des routes personnalisées pour vos applications MVC

Apprenez comment ajouter des routes personnalisées à une application ASP.Net MVC. Dans ce tutoriel, vous allez également apprendre à modifier la route par défaut dans le fichier Global.asax. ♪

Article lu   fois.

L'auteur

Profil ProSite personnel

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

Traduction

Cet article est la traduction la plus fidèle possible de l'article original : Creating Custom Routes

Création de routes personnalisées

Dans ce tutoriel, vous allez apprendre comment ajouter des routes personnalisées à une application ASP.Net MVC. Dans ce tutoriel, vous allez également apprendre à modifier la route par défaut dans le fichier Global.asax à l'aide d'une route personnalisée.

Pour plusieurs applications ASP.Net MVC simples, la route par défaut pourra convenir. À l'inverse, vous pourriez découvrir que vous avez des besoins de routes spécialisées. Dans ce cas, vous pouvez créer une route personnalisée.

Imaginez, par exemple, que vous construisez une application de blogging. Vous voulez donc savoir prendre en compte et utiliser des URL qui ressemblent à ceci :
/Archive/12-25-2009

Lorsqu'un utilisateur entre cette requête, vous voulez retourner l'entrée blog qui correspond à la date 25/12/2009. Pour prendre en charge ce type de requêtes, vous devez créer une route personnalisée.

Le fichier Global.asax suivant contient une nouvelle route personnalisée, nommée Blog, qui prendre en charge les requêtes de la forme /Archive/date.

Global.asax.cs
Sélectionnez
using System.Web.Mvc; 
using System.Web.Routing; 
namespace MvcApplication1 
{ 
    public class MvcApplication : System.Web.HttpApplication 
    { 
        public static void RegisterRoutes(RouteCollection routes) 
        { 
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
            routes.MapRoute( "Blog", // Route name 
                            "Archive/{entryDate}", // URL with parameters 
                            new { controller = "Archive", 
                            action = "Entry" } // Parameter defaults ); 
            routes.MapRoute( "Default", // Route name 
                            "{controller}/{action}/{id}", // URL with parameters 
                            new {controller = "Home", action = "Index", id = "" } // Parameter defaults 
            ); 
        
        } 
        protected void Application_Start() 
        { 
            RegisterRoutes(RouteTable.Routes); 
        } 
    } 
}

L'ordre des routes que vous ajoutez à la table des routes est important. Notre nouvelle route personnalisée est ajoutée avant la route par défaut. Si vous inversez l'ordre alors la route par défaut sera toujours appelée à la place de la route personnalisée.

La route personnalisée Blog correspond à toute requête qui commence par /Archive/. Ainsi, elle sera déclenchée pour toutes les adresses suivantes :
/Archive/12-25-2009
/Archive/10-6-2004
/Archive/apple

La route personnalisée map les requêtes entrantes vers un contrôleur nommé Archive et invoque l'action Entry(). Lorsque la méthode Entry() est appelée, la date d'entrée en tant que paramètre nommé entryDate.

Vous pouvez utiliser la route personnalisée Blog avec le contrôleur décrit par le code suivant.

ArchiveController.cs
Sélectionnez
using System; 
using System.Web.Mvc; 
namespace MvcApplication1.Controllers 
{ 
    public class ArchiveController : Controller 
    { 
        public string Entry(DateTime entryDate) 
        { 
            return "You requested the entry from " + entryDate.ToString(); 
        } 
    } 
}

Notez que la méthode Entry() accepte un paramètre de type DateTime. Le framework MVC est assez intelligent pour convertir automatiquement la date d'entrée de l'URL en un objet de type DateTime. Si la date passée en paramètre depuis l'URL ne peut être convertie en un objet DateTime alors l'erreur suivante est levée.

Image non disponible

Conclusion

L'objectif de ce tutoriel était de démontrer comment vous pouvez créer une route personnalisée. Vous avez appris comment ajouter une route à la table des routes dans le fichier Global.asax. Nous avons également vu comment mapper des requêtes pour les entrées blogs vers un contrôleur nommé ArchiveController et vers une action contrôleur nommée Entry().

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Copyright © 2009 Equipe dotnet. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC.