Aracılığıyla paylaş


Route.Constraints Özellik

Tanım

URL parametresi için geçerli değerler belirten ifadeler sözlüğü alır veya ayarlar.

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 bir nesne.

Örnekler

Aşağıdaki örnekte, bir Route nesnenin nasıl oluşturulacağı ve , DataTokensve Defaults özelliklerinin nasıl ayarlanacağı Constraintsgösterilmektedir.

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 örnekte, özelliği değeri için sınıfın HttpMethodConstraint bir örneğine sahip adlı httpMethod bir parametre içeren bir nesne Constraints gösterilmektedirRoute.

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

özelliği, Constraints bir yol tarafından işlenen URL parametresi için kabul edilebilir değerleri sınırlamanıza olanak tanır. Özelliğine Constraints bir RouteValueDictionary nesne atarsınız. Nesnedeki RouteValueDictionary her öğe bir parametrenin adını ve aşağıdakilerden birini içerir:

  • Normal ifadeyi tanımlayan bir dize. Normal ifade büyük/küçük harfe duyarlı değildir.

  • arabirimini IRouteConstraint uygulayan ve bir yöntem içeren bir Match nesne.

HttpMethodConstraint sınıfı, IRouteConstraint arabirimini uygular. Yol için hangi HTTP fiillerinin HttpMethodConstraint kabul edilebilir olduğunu belirtmek için kısıtlama olarak sınıfının bir örneğini ekleyebilirsiniz.

Şunlara uygulanır

Ayrıca bkz.