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

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ın bir örneğine HttpMethodConstraint sahip adlı httpMethod bir parametre içeren bir nesnesi 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. nesnesindeki RouteValueDictionary her öğe bir parametrenin adını ve aşağıdakilerden birini içerir:

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

  • Arabirimini uygulayan IRouteConstraint ve bir yöntemi içeren bir Match nesne.

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

Şunlara uygulanır

Ayrıca bkz.