Поделиться через


HttpMethodConstraint Класс

Определение

Позволяет определить, какие HTTP-команды разрешены, если маршрутизация ASP.NET определяет, соответствует ли URL-адрес маршруту.

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-командами. Например, можно указать, что маршрут считается совпадением для URL-адреса, только если HTTP-команда для запроса имеет значение POST.

Чтобы задать ограничения для сопоставления маршрутов, необходимо задать Constraints для свойства Route класса экземпляр класса RouteValueDictionary . Чтобы задать ограничение HTTP-команды, необходимо задать значение одного элемента словаря в качестве HttpMethodConstraint объекта, а ключ — любое имя.

HttpMethodConstraint В метод включаются все HTTP-команды, разрешенные для маршрута, если ASP.NET маршрутизация определяет, соответствует ли маршрут URL-адресу.

Конструкторы

HttpMethodConstraint(String[])

Инициализирует новый экземпляр класса HttpMethodConstraint с помощью команд HTTP, которые разрешены для маршрута.

Свойства

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).

Применяется к

См. также раздел