Gets or sets a dictionary of expressions that specify valid values for a URL parameter.
Assembly: System.Web (in System.Web.dll)
Public Property Constraints As RouteValueDictionary Get Set
public RouteValueDictionary Constraints { get; set; }
public: property RouteValueDictionary^ Constraints { RouteValueDictionary^ get (); void set (RouteValueDictionary^ value); }
member Constraints : RouteValueDictionary with get, set
Property Value
Type: System.Web.Routing.RouteValueDictionaryAn object that contains the parameter names and expressions.
The Constraints property enables you to limit acceptable values for a URL parameter that is processed by a route. You assign a RouteValueDictionary object to the Constraints property. Each element in the RouteValueDictionary object contains the name of a parameter and one of the following:
-
A string that defines a regular expression. The regular expression is case-insensitive.
-
An object that implements the IRouteConstraint interface and that includes a Match method.
The HttpMethodConstraint class implements the IRouteConstraint interface. You can include an instance of the HttpMethodConstraint class as a constraint to specify which HTTP verbs are acceptable 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
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); }
The following example shows a Route object whose Constraints property contains a parameter named httpMethod with an instance of the HttpMethodConstraint class for the value.
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 Dim allowedMethods() As String = {"GET", "POST"} Dim methodConstraints As HttpMethodConstraint methodConstraints = New HttpMethodConstraint(allowedMethods) Dim constraintValues = New With {.httpMethod = methodConstraints} urlPattern = "{locale}/{year}" reportRoute = New Route(urlPattern, New ReportRouteHandler) reportRoute.Constraints = New RouteValueDictionary(constraintValues) routes.Add(reportRoute) End Sub
void Application_Start(object sender, EventArgs e) { RegisterRoutes(RouteTable.Routes); } public static void RegisterRoutes(RouteCollection routes) { string[] allowedMethods = { "GET", "POST" }; HttpMethodConstraint methodConstraints = new HttpMethodConstraint(allowedMethods); Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler()); reportRoute.Constraints = new RouteValueDictionary { { "httpMethod", methodConstraints } }; routes.Add(reportRoute); }
.NET Framework
Supported in: 4, 3.5 SP1Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
