Route.Defaults Propriedade

Definição

Obtém ou define os valores a serem usados se a URL não contiver todos os 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 da propriedade

RouteValueDictionary

Um objeto que contém os nomes do parâmetro e os valores padrão.

Exemplos

O exemplo a seguir mostra como criar um Route objeto e definir o , DataTokense Defaults as Constraintspropriedades.

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

O exemplo a seguir mostra um Route objeto cuja Defaults propriedade contém um parâmetro que não faz parte do padrão na Url propriedade.

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

Comentários

A Defaults propriedade permite que você defina o valor de um parâmetro de URL se a URL não contiver um segmento para esse parâmetro. Você atribui um RouteValueDictionary objeto à Defaults propriedade. Cada elemento no RouteValueDictionary objeto contém o nome de um parâmetro e o valor a ser usado se o parâmetro estiver ausente.

Você pode incluir um valor padrão para um parâmetro que não é definido na Url propriedade como um segmento. Quando ASP.NET roteamento manipula uma solicitação, esse valor padrão sempre é passado para o manipulador de rotas. Quando você constrói uma URL e inclui um valor para um parâmetro padrão que não é definido como um segmento, a rota só será considerada uma correspondência se o valor fornecido corresponder ao valor padrão da rota.

Aplica-se a

Confira também