route net maphttproute attribute asp asp.net asp.net-mvc routing asp.net-mvc-routing

asp.net - net - route web api 2 c#



Cómo hacer la ruta del filtro IRouteConstraint (1)

Aquí hay una restricción simple que busca una barra de artículo en un repositorio ficticio:

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.ContainsKey(parameterName)) return false; var slug = (string)values[parameterName]; return slugRepository.Exists(slug); } }

Podrías conectar la restricción de esta manera:

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

Escribí una restricción de ruta personalizada, pero su filtro simplemente no se reconoce. ¿Alguien tiene un ejemplo de uso de trabajo de IRouteConstraint?

Además, tenga en cuenta a los desarrolladores: obtengo doble visualización del formulario en mi Android. ¿Algo debe estar mal con la prestación parcial?