2016-07-15 1 views
0

Я создал следующий маршрут в моем RouteConfig.csАтрибут маршрутизации с пустым параметром

 config.Routes.MapHttpRoute(
      name: "CustomFilter", 
      routeTemplate: "api/{controller}/{category}/{begin},{pageSize}", 
      defaults: new 
      { 
       category = RouteParameter.Optional, 
       begin = RouteParameter.Optional, 
       take = RouteParameter.Optional 
      } 
     ); 

Это используется ниже способом:

public IHttpActionResult GetStudentsByCategory(string category, int begin, int pageSize) 
{ 
.. 
} 

Обычай маршрут отлично работает, если параметр категории не отсутствующего

1. api/students/tech/1,3 (is working) 
2. api/students//1,3 (not working) 

Возможно ли сделать второй запрос URL (без ca тегориальный параметр) работают?

ответ

1

Добавить еще один маршрут без категории, она должна быть выше тока один

config.Routes.MapHttpRoute(
     name: "CustomFilter-without-cat", 
     routeTemplate: "api/{controller}/{begin},{pageSize}", 
     defaults: new 
     { 
      begin = RouteParameter.Optional, 
      take = RouteParameter.Optional 
     } 
    ); 
    config.Routes.MapHttpRoute(
     name: "CustomFilter", 
     routeTemplate: "api/{controller}/{category}/{begin},{pageSize}", 
     defaults: new 
     { 
      category = RouteParameter.Optional, 
      begin = RouteParameter.Optional, 
      take = RouteParameter.Optional 
     } 
    ); 

 Смежные вопросы

  • Нет связанных вопросов^_^