在以前的 MVC 版本中,有很多关于如何创建路由约束的教程:
-
为属性路由注册 ASP.NET MVC 路由约束 http://www.khalidabuhakmeh.com/registering-asp-net-mvc-route-constraints-for-attribute-routing
- 基于属性的路由 MVC5 中的约束 http://mannpandey.blogspot.co.za/
这是如何与 MVC6 一起工作的,特别是注册自定义路由约束,以便它可以在 ApiController Actions 的属性中使用?
我创建了一个名为 NonEmptyGuid 的自定义路由约束,它实际上只是确保将非空 Guid 用作GET Action:
public class NonEmptyGuid : IRouteConstraint
{
public bool Match(HttpContext httpContext, IRouter route, string routeKey, IDictionary<string, object> values, RouteDirection routeDirection)
{
if (!values.ContainsKey(routeKey)) return false;
if (values[routeKey].ToString().Equals(Guid.Empty.ToString())) return false;
return true;
}
}
问题:如何以及在哪里注册此自定义路由约束MVC6应用程序(例如,在本例中是在 WebApi 项目中)。
您可以使用RouteOptions
注册您的约束:
services.Configure<RouteOptions>(options =>
options
.ConstraintMap
.Add("test", typeof(TestRouteConstraint)));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)