Route.Defaults Propiedad

Definición

Obtiene o establece los valores que se usarán si la dirección URL no contiene todos los parámetros.

public:
 property System::Web::Routing::RouteValueDictionary ^ Defaults { System::Web::Routing::RouteValueDictionary ^ get(); void set(System::Web::Routing::RouteValueDictionary ^ value); };
public System.Web.Routing.RouteValueDictionary Defaults { get; set; }
member this.Defaults : System.Web.Routing.RouteValueDictionary with get, set
Public Property Defaults As RouteValueDictionary

Valor de propiedad

Objeto que contiene los nombres y los valores predeterminados de los parámetros.

Ejemplos

En el ejemplo siguiente se muestra cómo crear un Route objeto y establecer las Constraintspropiedades , DataTokensy Defaults .

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler());
    reportRoute.Defaults = new RouteValueDictionary { { "locale", "en-US" }, { "year", DateTime.Now.Year.ToString() } };
    reportRoute.Constraints = new RouteValueDictionary { { "locale", "[a-z]{2}-[a-z]{2}" }, { "year", @"\d{4}" } };
    reportRoute.DataTokens = new RouteValueDictionary { { "format", "short" } };
    routes.Add(reportRoute);
}
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    Dim urlPattern As String
    Dim reportRoute As Route
    
    urlPattern = "{locale}/{year}"
    
    reportRoute = New Route(urlPattern, New ReportRouteHandler)
    reportRoute.Defaults = New RouteValueDictionary(New With {.locale = "en-US", .year = DateTime.Now.Year.ToString()})
    reportRoute.Constraints = New RouteValueDictionary(New With {.locale = "[a-z]{2}-[a-z]{2}", .year = "\d{4}"})
    reportRoute.DataTokens = New RouteValueDictionary(New With {.format = "short"})

    routes.Add(reportRoute)
End Sub

En el ejemplo siguiente se muestra un Route objeto cuya Defaults propiedad contiene un parámetro que no forma parte del patrón en la Url propiedad .

void Application_Start(object sender, EventArgs e) 
{
    RegisterRoutes(RouteTable.Routes);
}

public static void RegisterRoutes(RouteCollection routes)
{
    Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler());
    
    reportRoute.Defaults = new RouteValueDictionary { { "months", "all" } };
    
    routes.Add(reportRoute);
}
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    RegisterRoutes(RouteTable.Routes)
End Sub

Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
    Dim urlPattern As String
    Dim reportRoute As Route
    
    urlPattern = "{locale}/{year}"
    
    reportRoute = New Route(urlPattern, New ReportRouteHandler)
    
    reportRoute.Defaults = New RouteValueDictionary(New With {.months = "all"})
    
    routes.Add(reportRoute)
End Sub

Comentarios

La Defaults propiedad permite establecer el valor de un parámetro de dirección URL si la dirección URL no contiene un segmento para ese parámetro. Asigna un RouteValueDictionary objeto a la Defaults propiedad . Cada elemento del RouteValueDictionary objeto contiene el nombre de un parámetro y el valor que se va a usar si falta el parámetro.

Puede incluir un valor predeterminado para un parámetro que no está definido en la Url propiedad como un segmento. Cuando ASP.NET enrutamiento controla una solicitud, este valor predeterminado siempre se pasa al controlador de ruta. Al construir una dirección URL e incluir un valor para un parámetro predeterminado que no está definido como un segmento, la ruta solo se considerará una coincidencia si el valor proporcionado coincide con el valor predeterminado de la ruta.

Se aplica a

Consulte también