有没有一种方式在Asp.NET MVC 3中以通用方式响应HEAD请求,而不是将HEAD属性添加到单个方法中?
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请求时,它将被路由到HeadController的Index操作。