Compartir a través de


Cómo: Crear una dirección URL a partir de una ruta

Actualización: noviembre 2007

Puede utilizar el enrutamiento ASP.NET para generar direcciones URL que coincidan con los modelos definidos en una aplicación ASP.NET. La dirección URL se crea llamando al método GetVirtualPath de la clase RouteCollection y pasando un diccionario de valores de parámetro. El enrutamiento ASP.NET compara los valores de parámetro con los modelos de la dirección URL y genera una dirección URL basada en la primera ruta cuyo modelo coincida con los parámetros.

Puede pasar valores adicionales en el diccionario de valores de parámetro. Los valores que coincidan con un parámetro de la definición de la ruta se incluyen en la dirección URL. Los valores adicionales se incluyen como valores de la cadena de consulta.

Al crear una dirección URL, puede que varias definiciones de ruta coincidan con los parámetros que se pasan. Puede especificar qué ruta desea utilizar para crear la dirección URL proporcionando el nombre de una ruta. El nombre de una ruta se especifica al agregarlo a la colección de rutas.

Debe definir las rutas en la aplicación ASP.NET antes de construir direcciones URL mediante el enrutamiento de direcciones URL. Para obtener más información, vea Cómo: Definir una ruta. Para obtener información sobre cómo configurar un proyecto de sitio web ASP.NET para utilizar el enrutamiento, vea Cómo: Utilizar el enrutamiento con formularios web.

Crear una dirección URL basada en una ruta coincidente

Cuando el enrutamiento ASP.NET construye una dirección URL, utiliza la ruta con nombre especificada o la primera ruta que tenga un modelo que coincida con los parámetros especificados.

Para crear una dirección URL

  1. Cree una instancia de la clase RouteValueDictionary que contenga todos los valores de parámetro que desee incluir en la dirección URL. Los valores de parámetro deben incluir valores que coincidan con un modelo de ruta. Puede incluir valores adicionales; si es así, esos valores se asignarán a la cadena de consulta.

  2. Llame al método GetVirtualPath de la clase RouteCollection y pase el objeto RouteValueDictionary para construir la dirección URL. Para indicar una ruta específica, incluya el nombre de la ruta.

    El método GetVirtualPath devuelve un objeto VirtualPathData.

  3. En el objeto VirtualPathData que devuelve el método GetVirtualPath, recupere la propiedad VirtualPath para obtener la cadena que representa la dirección URL.

Ejemplo

En el ejemplo siguiente se muestra cómo crear una dirección URL a partir de una ruta. El ejemplo supone que ha agregado dos rutas a la aplicación ASP.NET. La primera ruta se denomina SalesRoute y define el modelo SalesReport/{locale}/{year}. La segunda ruta se denomina ExpensesRoute y define el modelo ExpensesReport/{locale}/{year}. Para obtener más información, vea Cómo: Definir una ruta.

En el ejemplo muestra cómo especificar el nombre de la ruta al construir la dirección URL. SalesRoute y ExpensesRoute toman los parámetros year y locale. Por consiguiente, puede especificar la ruta que desea utilizando un nombre.

El ejemplo también muestra cómo incluir un parámetro adicional al construir la dirección URL. El parámetro category se incluirá como un valor de la cadena de consulta al construir la dirección URL.

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;

Vea también

Tareas

Cómo: Definir una ruta

Conceptos

Enrutamiento de ASP.NET