Route.Constraints Property
Gets or sets a dictionary of expressions that specify valid values for a URL parameter.
Assembly: System.Web (in System.Web.dll)
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.
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.
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); }
Available since 3.5