Route.Constraints Eigenschaft

Definition

Ruft ein Wörterbuch von Ausdrücken ab oder legt dieses fest, die gültige Werte für einen URL-Parameter angeben.

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

Eigenschaftswert

RouteValueDictionary

Ein Objekt, das die Parameternamen und Ausdrücke enthält.

Beispiele

Das folgende Beispiel zeigt, wie Sie ein Route Objekt erstellen und die ConstraintsEigenschaften DataTokensund Defaults Eigenschaften festlegen.

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

Das folgende Beispiel zeigt ein Objekt, dessen Eigenschaft einen Route Parameter enthält, Constraints der mit einer Instanz der HttpMethodConstraint Klasse für den Wert benannt httpMethod ist.

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

Hinweise

Mit der Constraints Eigenschaft können Sie zulässige Werte für einen URL-Parameter einschränken, der von einer Route verarbeitet wird. Sie weisen der Constraints Eigenschaft ein RouteValueDictionary Objekt zu. Jedes Element im RouteValueDictionary Objekt enthält den Namen eines Parameters und eines der folgenden:

  • Eine Zeichenfolge, die einen regulären Ausdruck definiert. Der reguläre Ausdruck ist groß- und kleinschreibung.

  • Ein Objekt, das die IRouteConstraint Schnittstelle implementiert und eine Match Methode enthält.

Die HttpMethodConstraint-Klasse implementiert die IRouteConstraint-Schnittstelle. Sie können eine Instanz der HttpMethodConstraint Klasse als Einschränkung einschließen, um anzugeben, welche HTTP-Verben für die Route akzeptabel sind.

Gilt für

Siehe auch