Route.Defaults Propriedade

Definição

Obtém ou define os valores a serem usados se a URL não contiver todos os parâmetros.Gets or sets the values to use if the URL does not contain all the parameters.

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

Um objeto que contém os nomes do parâmetro e os valores padrão.An object that contains the parameter names and default values.

Exemplos

O exemplo a seguir mostra como criar um objeto Route e definir as propriedades Constraints, DataTokense Defaults.The following example shows how to create a Route object and set the Constraints, DataTokens, and Defaults properties.

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 objeto Route cuja propriedade Defaults contém um parâmetro que não faz parte do padrão na propriedade Url.The following example shows a Route object whose Defaults property contains a parameter that is not part of the pattern in the Url property.

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 propriedade Defaults permite que você defina o valor para um parâmetro de URL se a URL não contiver um segmento para esse parâmetro.The Defaults property enables you to set the value for a URL parameter if the URL does not contain a segment for that parameter. Você atribui um objeto RouteValueDictionary à propriedade Defaults.You assign a RouteValueDictionary object to the Defaults property. Cada elemento no objeto RouteValueDictionary contém o nome de um parâmetro e o valor a ser usado se o parâmetro estiver ausente.Each element in the RouteValueDictionary object contains the name of a parameter and the value to use if the parameter is missing.

Você pode incluir um valor padrão para um parâmetro que não esteja definido na propriedade Url como um segmento.You can include a default value for a parameter that is not defined in the Url property as a segment. Quando o roteamento de ASP.NET processa uma solicitação, esse valor padrão é sempre passado para o manipulador de rotas.When ASP.NET routing handles a request, this default value is always passed to the route handler. Quando você constrói uma URL e inclui um valor para um parâmetro padrão que não está definido como um segmento, a rota só será considerada uma correspondência se o valor fornecido corresponder ao valor padrão da rota.When you construct a URL and you include a value for a default parameter that is not defined as a segment, the route will only be considered a match if the value that you provided matches the default value for the route.

Aplica-se a

Veja também