asp.net 如何使IRouteConstraint过滤路由

laawzig2  于 2023-06-07  发布在  .NET
关注(0)|答案(1)|浏览(164)

我编写了一个自定义路由约束,但它的过滤器无法识别。有没有人有IRouteConstraint的工作使用示例?
另外,开发人员请注意:我在我的android上得到双重显示的形式。一定是局部渲染出了问题?

dl5txlt9

dl5txlt91#

这里有一个简单的约束,它在一个虚构的存储库中查找一个文章slug:

public class SlugRouteConstraint : IRouteConstraint
{
    private readonly ISlugRepository slugRepository = new SlugRepository();

    public bool Match(HttpContextBase httpContext, Route route, string parameterName, RouteValueDictionary values, RouteDirection routeDirection)
    {
        if (!values.TryGetValue(parameterName, out object slug))
            return false;

        return slugRepository.Exists(slug as string);
    }
}

可以像这样关联约束:

routes.MapRoute("Slugs", "{slug}",
    new { controller = "Articles", action = "View" },
    new { slug = new SlugConstraint() });

相关问题