Route.Constraints Özellik

Tanım

Bir URL parametresi için geçerli değerler belirten ifadelerin sözlüğünü alır veya ayarlar.Gets or sets a dictionary of expressions that specify valid values for a URL parameter.

public:
 property System::Web::Routing::RouteValueDictionary ^ Constraints { System::Web::Routing::RouteValueDictionary ^ get(); void set(System::Web::Routing::RouteValueDictionary ^ value); };
public System.Web.Routing.RouteValueDictionary Constraints { get; set; }
member this.Constraints : System.Web.Routing.RouteValueDictionary with get, set
Public Property Constraints As RouteValueDictionary

Özellik Değeri

RouteValueDictionary

Parametre adlarını ve ifadelerini içeren nesne.An object that contains the parameter names and expressions.

Örnekler

Aşağıdaki örnek, bir Route nesnesi oluşturma ve Constraints ,, DataTokens ve özelliklerini ayarlama işlemlerinin nasıl yapılacağını gösterir 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

Aşağıdaki örnek, Route Constraints özelliği httpMethod değeri için sınıfının bir örneğine sahip adlı bir parametre içeren bir nesne gösterir HttpMethodConstraint .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);
}
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

Açıklamalar

ConstraintsÖzelliği, bir rota tarafından işlenen BIR URL parametresi için kabul edilebilir değerleri sınırlamanıza olanak sağlar.The Constraints property enables you to limit acceptable values for a URL parameter that is processed by a route. RouteValueDictionaryÖzelliğine bir nesne atarsınız Constraints .You assign a RouteValueDictionary object to the Constraints property. Nesnesindeki her öğe RouteValueDictionary , bir parametrenin adını ve aşağıdakilerden birini içerir:Each element in the RouteValueDictionary object contains the name of a parameter and one of the following:

  • Normal ifadeyi tanımlayan bir dize.A string that defines a regular expression. Normal ifade, büyük/küçük harfe duyarlıdır.The regular expression is case-insensitive.

  • IRouteConstraintArabirimini uygulayan ve bir yöntemi içeren nesne Match .An object that implements the IRouteConstraint interface and that includes a Match method.

HttpMethodConstraint sınıfı, IRouteConstraint arabirimini uygular.The HttpMethodConstraint class implements the IRouteConstraint interface. HttpMethodConstraintYol için HANGI http fiillerinin kabul edilebilir olduğunu belirtmek üzere bir kısıtlama olarak sınıfın bir örneğini dahil edebilirsiniz.You can include an instance of the HttpMethodConstraint class as a constraint to specify which HTTP verbs are acceptable for the route.

Şunlara uygulanır

Ayrıca bkz.