繁体   English   中英

如何在MVC6中注册RouteConstraints

[英]How To Register RouteConstraints in MVC6

有许多关于如何在以前的MVC版本中创建RouteConstraints的教程:

这如何与MVC6一起使用,特别是注册自定义路由约束,因此它可以用在ApiController动作的属性中?

我创建了一个名为NonEmptyGuid的自定义路由约束,它实际上只是确保将非空Guid用作GET操作的参数:

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应用程序注册此自定义RouteConstraint(例如,在WebApi项目中)。

您可以使用RouteOptions注册约束:

services.Configure<RouteOptions>(options =>
                                options
                                .ConstraintMap
                                .Add("test", typeof(TestRouteConstraint)));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM