Подтвердить что ты не робот

Как сделать маршрут фильтра IRouteConstraint

Я написал пользовательское ограничение маршрута, но его фильтр просто не распознается. Кто-нибудь имеет пример использования IRouteConstraint?

Кроме того, обратите внимание на разработчиков: я получаю двойное отображение формы на моем Android. Что-то должно быть неправильно с частичным рендерингом?

4b9b3361

Ответ 1

Здесь простое ограничение, которое ищет пул статьи в вымышленном репозитории:

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);
    }
}

Вы можете подключить ограничение следующим образом:

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