Ответ на запрос HEAD в asp.NET MVC 3
Есть ли способ в Asp.NET MVC 3 отвечать на запросы HEAD универсальным способом, в отличие от добавления атрибута HEAD к отдельным методам.
1 ответ
Решение
Создать маршрут с RouteConstraint
вот так:
routes.MapRoute(
"HEAD Requests",
"{*fullPath}",
new { controller = "Head", action = "Index" },
new { fullPath = new MustBeHeadRequest() }
);
public class MustBeHeadRequest : IRouteConstraint
{
public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
{
return httpContext.Request.HttpMethod.ToLowerInvariant() == "head";
}
}
Поместите маршрут в или около вершины ваших маршрутов. Когда приходит запрос HEAD, он будет перенаправлен на действие Index в HeadController.