HttpMethodConstraint 类

定义

使你能够在 ASP.NET 确定 URL 是否匹配路由时定义允许使用的 HTTP 谓词。

public ref class HttpMethodConstraint : System::Web::Routing::IRouteConstraint
public class HttpMethodConstraint : System.Web.Routing.IRouteConstraint
type HttpMethodConstraint = class
    interface IRouteConstraint
Public Class HttpMethodConstraint
Implements IRouteConstraint
继承
HttpMethodConstraint
实现

示例

以下示例演示了一个 Route 对象,其 Constraints 属性包含一个具有命名 httpMethod 键且其值为类实例的 HttpMethodConstraint 项。

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

注解

通过该 HttpMethodConstraint 类,可以将路由匹配限制为某些 HTTP 谓词。 例如,可以指定仅当请求的 HTTP 谓词为 POSTHTTP 谓词时,路由才被视为 URL 的匹配项。

若要设置路由匹配的约束,请将类的属性Route设置为Constraints类的RouteValueDictionary实例。 若要设置 HTTP 谓词约束,请将一个字典元素的值设置为对象 HttpMethodConstraint ,并将键设置为任何名称。

在方法中HttpMethodConstraint,当 ASP.NET 路由确定路由是否与 URL 匹配时,将包含路由允许的所有 HTTP 谓词。

构造函数

HttpMethodConstraint(String[])

使用允许用于该路由的 HTTP 谓词初始化 HttpMethodConstraint 类的新实例。

属性

AllowedMethods

获取路由允许的 HTTP 谓词的集合。

方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)
GetHashCode()

作为默认哈希函数。

(继承自 Object)
GetType()

获取当前实例的 Type

(继承自 Object)
Match(HttpContextBase, Route, String, RouteValueDictionary, RouteDirection)

确定请求是否是使用某一个已允许对路由使用的 HTTP 谓词发出的。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)
ToString()

返回表示当前对象的字符串。

(继承自 Object)

显式接口实现

IRouteConstraint.Match(HttpContextBase, Route, String, RouteValueDictionary, RouteDirection)

有关此成员的说明,请参见 Match(HttpContextBase, Route, String, RouteValueDictionary, RouteDirection)

适用于

另请参阅