Route.Defaults Eigenschap

Definitie

Hiermee worden de waarden opgehaald of ingesteld die moeten worden gebruikt als de URL niet alle parameters bevat.

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

Waarde van eigenschap

Een object dat de parameternamen en standaardwaarden bevat.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een Route object maakt en de Constraints, DataTokensen Defaults eigenschappen instelt.

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

In het volgende voorbeeld ziet u een Route object waarvan Defaults de eigenschap een parameter bevat die geen deel uitmaakt van het patroon in de Url eigenschap.

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

Opmerkingen

Defaults Met de eigenschap kunt u de waarde voor een URL-parameter instellen als de URL geen segment voor die parameter bevat. U wijst een RouteValueDictionary object toe aan de Defaults eigenschap. Elk element in het RouteValueDictionary object bevat de naam van een parameter en de waarde die moet worden gebruikt als de parameter ontbreekt.

U kunt een standaardwaarde opnemen voor een parameter die niet is gedefinieerd in de Url eigenschap als segment. Wanneer ASP.NET routering een aanvraag verwerkt, wordt deze standaardwaarde altijd doorgegeven aan de route-handler. Wanneer u een URL maakt en u een waarde opneemt voor een standaardparameter die niet is gedefinieerd als een segment, wordt de route alleen beschouwd als een overeenkomst als de waarde die u hebt opgegeven overeenkomt met de standaardwaarde voor de route.

Van toepassing op

Zie ook