Créer des routes personnalisées pour vos applications MVCDate de publication : mai 2009
Par
Louis-Guillaume MORAND (Traduction) (Page perso de Louis-Guillaume MORAND)
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.
Traduction
Création de routes personnalisées
Conclusion
Traduction
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. A 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 URLs 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 réquête, 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 |
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 " ,
{ entryDate} " , // URL with parameters
new { controller = " Archive " ,
action = " Entry " }
routes. MapRoute ( " Default " ,
" {controller}/{action}/{id} " ,
new { controller = " Home " , action = " Index " , id = " " }
);
}
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 |
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.
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().
Copyright ©2009 Equipe dotnet.
Aucune reproduction, même partielle, ne peut être faite
de ce site et de l'ensemble de son contenu : textes, documents, images, etc
sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts. Droits de diffusion permanents accordés à Developpez LLC. Cette page est déposée à la SACD.
|