Partager via


Comment : construire une URL à partir d'un itinéraire

Mise à jour : novembre 2007

Vous pouvez utiliser le routage ASP.NET pour générer des URL qui correspondent aux modèles définis dans une application ASP.NET. Vous créez l'URL en appelant la méthode GetVirtualPath de la classe RouteCollection et en passant un dictionnaire de valeurs de paramètre. Le routage ASP.NET compare les valeurs de paramètre aux modèles d'URL, et génère une URL en fonction du premier itinéraire dont le modèle correspond aux paramètres.

Vous pouvez passer des valeurs supplémentaires dans le dictionnaire de valeurs de paramètre. Les valeurs qui correspondent à un paramètre dans la définition de l'itinéraire sont incluses dans l'URL. Les valeurs supplémentaires sont incluses comme valeurs de chaîne de requête.

Lorsque vous créez une URL, plusieurs définitions d'itinéraire peuvent correspondre aux paramètres que vous passez. Vous pouvez spécifier l'itinéraire à utiliser pour créer l'URL en indiquant son nom. Vous spécifiez le nom d'un itinéraire lorsque vous l'ajoutez à la collection d'itinéraires.

Vous devez définir des itinéraires dans l'application ASP.NET avant de construire des URL avec le routage d'URL. Pour plus d'informations, consultez Comment : définir un itinéraire. Pour plus d'informations sur la configuration d'un projet de site Web ASP.NET pour utiliser le routage, consultez Comment : utiliser le routage avec les Web Forms.

Création d'une URL en fonction d'un itinéraire correspondant

Lorsque le routage ASP.NET construit une URL, il utilise soit l'itinéraire nommé que vous spécifiez, soit le premier itinéraire dont le modèle correspond aux paramètres que vous indiquez.

Pour créer une URL

  1. Créez une instance de la classe RouteValueDictionary qui contient toutes les valeurs de paramètre à inclure dans l'URL. Les valeurs de paramètre doivent inclure des valeurs qui correspondent à un modèle d'itinéraire. Cette instance peut inclure des valeurs supplémentaires ; si c'est le cas, ces valeurs seront assignées à la chaîne de requête.

  2. Appelez la méthode GetVirtualPath de la classe RouteCollection et passez l'objet RouteValueDictionary pour construire l'URL. Pour indiquer un itinéraire spécifique, incluez son nom.

    La méthode GetVirtualPath retourne un objet VirtualPathData.

  3. À partir de l'objet VirtualPathData retourné par la méthode GetVirtualPath, récupérez la propriété VirtualPath pour obtenir la chaîne qui représente l'URL.

Exemple

L'exemple suivant montre comment créer une URL à partir d'un itinéraire. Il suppose que vous avez ajouté deux itinéraires à l'application ASP.NET. Le premier itinéraire est nommé SalesRoute et définit le modèle SalesReport/{locale}/{year}. Le deuxième est nommé ExpensesRoute et définit le modèle ExpensesReport/{locale}/{year}. Pour plus d'informations, consultez Comment : définir un itinéraire.

L'exemple montre comment spécifier le nom de l'itinéraire lorsque vous construisez l'URL. SalesRoute et ExpensesRoute prennent les paramètres year et locale. Par conséquent, vous spécifiez l'itinéraire que vous souhaitez en utilisant un nom.

L'exemple montre également comment inclure un paramètre supplémentaire lorsque vous construisez l'URL. Le paramètre category sera inclus comme valeur de chaîne de requête lorsque l'URL sera construite.

Dim vpd As VirtualPathData
Dim url As String
Dim parameters As RouteValueDictionary

parameters = New RouteValueDictionary(New With _
    {.year = "2007", .locale = "en-CA", .category = "recreation"})

vpd = RouteTable.Routes.GetVirtualPath _
  (Nothing, _
  "SalesRoute", _
  parameters)

url = vpd.VirtualPath
RouteValueDictionary parameters = new RouteValueDictionary { 
    { "year", "2007" }, { "locale", "en-CA" }, {"category", "recreation"} };

VirtualPathData vpd = RouteTable.Routes.GetVirtualPath(
  null,
  "SalesRoute",
  parameters);

string url = vpd.VirtualPath;

Voir aussi

Tâches

Comment : définir un itinéraire

Concepts

Routage ASP.NET