Route.Defaults Property
![]() |
---|
The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience. |
Gets or sets the values to use if the URL does not contain all the parameters.
Assembly: System.Web (in System.Web.dll)
Property Value
Type: System.Web.Routing.RouteValueDictionaryAn object that contains the parameter names and default values.
The Defaults property enables you to set the value for a URL parameter if the URL does not contain a segment for that parameter. You assign a RouteValueDictionary object to the Defaults property. Each element in the RouteValueDictionary object contains the name of a parameter and the value to use if the parameter is missing.
You can include a default value for a parameter that is not defined in the Url property as a segment. When ASP.NET routing handles a request, this default value is always passed to the route handler. 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.
The following example shows how to create a Route object and set the Constraints, DataTokens, and Defaults properties.
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
The following example shows a Route object whose Defaults property contains a parameter that is not part of the pattern in the Url property.
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
Available since 3.5