2016-07-15 82 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 tegory參數)工作?

回答

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