Маршрут не запускается с косой чертой в веб-API 2

Это моя конфигурация маршрута:

 config.Routes.MapHttpRoute(
                name: "Public",
                routeTemplate: "{dept}/{unit}/",
                defaults: new
                {                    
                    controller = "Home",
                    action = "Index"                
                },
               constraints: new { constraint = new MyConstraint() }

            );

Когда я набираю в URL:

mysite.com/XYZ/123

тогда мой класс ограничения срабатывает

но когда я использую:

mysite.com/XYZ/123/ с добавленной косой чертой класс ограничений не запускается.

Я использую Web Api 2.

В routeTemplate я могу использовать "/" в конце или нет, это не имеет значения.

Почему это не работает?

ОБНОВИТЬ

public class HomeController : ApiController
{

[HttpGet]
public HttpResponseMessage Index()
{

}

}

1 ответ

Я обновил свой ответ:

Попробуйте атрибутную маршрутизацию:

[RoutePrefix("dept")]
 public class DepartmentController : ApiController
{
   [Route("unit:int:min(1)"}]
   public object Unit() {}
}

Ограничения могут быть установлены, как указано выше. Больше:

https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2

Другие вопросы по тегам