Partager via


Création de routes personnalisées (VB)

par Microsoft

Découvrez comment ajouter des itinéraires personnalisés à une application MVC ASP.NET. Dans ce tutoriel, vous allez apprendre à modifier la table de routage par défaut dans le fichier Global.asax.

Dans ce tutoriel, vous allez apprendre à ajouter un itinéraire personnalisé à une application MVC ASP.NET. Vous découvrez comment modifier la table de routage par défaut dans le fichier Global.asax avec un itinéraire personnalisé.

Dans ASP.NET applications MVC, la table de routage par défaut fonctionne parfaitement. Toutefois, vous découvrirez peut-être que vous avez des besoins de routage spécialisés. Dans ce cas, vous pouvez créer un itinéraire personnalisé.

Imaginez, par exemple, que vous générez une application de blog. Vous souhaiterez peut-être gérer les requêtes entrantes qui ressemblent à ceci :

/Archive/12-25-2009

Lorsqu’un utilisateur entre cette demande, vous souhaitez retourner l’entrée de blog qui correspond à la date du 25/12/2009. Pour gérer ce type de requête, vous devez créer un itinéraire personnalisé.

Le fichier Global.asax dans Listing 1 contient un nouvel itinéraire personnalisé, nommé Blog, qui gère les requêtes qui ressemblent à /Archive/date d’entrée.

Listing 1 - Global.asax (avec itinéraire personnalisé)

Public Class MvcApplication
    Inherits System.Web.HttpApplication
    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
            "Blog", _
            "Archive/{entryDate}", _
            New With {.controller = "Archive", .action = "Entry"} _
        )
        routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )
    End Sub
    Sub Application_Start()
        RegisterRoutes(RouteTable.Routes)
    End Sub
End Class

L’ordre des itinéraires que vous ajoutez à la table de routage est important. Notre nouvelle route de blog personnalisée est ajoutée avant l’itinéraire par défaut existant. Si vous avez inversé l’ordre, l’itinéraire par défaut est toujours appelé au lieu de l’itinéraire personnalisé.

L’itinéraire blog personnalisé correspond à toute requête commençant par /Archive/. Par conséquent, il correspond à toutes les URL suivantes :

  • /Archive/12-25-2009

  • /Archive/10-6-2004

  • /Archive/apple

L’itinéraire personnalisé mappe la demande entrante à un contrôleur nommé Archive et appelle l’action Entrée(). Lorsque la méthode Entry() est appelée, la date d’entrée est passée en tant que paramètre nommé entryDate.

Vous pouvez utiliser l’itinéraire personnalisé blog avec le contrôleur dans la liste 2.

Listing 2 - ArchiveController.vb

Public Class ArchiveController
    Inherits System.Web.Mvc.Controller
    Function Entry(ByVal entryDate As DateTime)
        Return "You requested the entry from " & entryDate.ToString()
    End Function
End Class

Notez que la méthode Entry() dans Listing 2 accepte un paramètre de type DateTime. L’infrastructure MVC est suffisamment intelligente pour convertir automatiquement la date d’entrée de l’URL en valeur DateTime. Si le paramètre de date d’entrée de l’URL ne peut pas être converti en DateTime, une erreur est générée (voir figure 1).

Figure 1 - Erreur lors de la conversion du paramètre

Boîte de dialogue New Project

Figure 01 : Erreur lors de la conversion du paramètre (Cliquer pour afficher l’image de taille réelle)

Résumé

L’objectif de ce tutoriel était de montrer comment créer un itinéraire personnalisé. Vous avez appris à ajouter un itinéraire personnalisé à la table de routage dans le fichier Global.asax qui représente les entrées de blog. Nous avons expliqué comment mapper les demandes d’entrées de blog à un contrôleur nommé ArchiveController et à une action de contrôleur nommée Entry().