2012-07-11 106 views
3

我有這樣的路線:網絡API的路由:可選參數

routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}/{myparam}", 
       defaults: new { id = RouteParameter.Optional, myparam = RouteParameter.Optional } 
      ); 

「身份證」應該是可選的,「myparam」應該是可選的藏漢但「身份證」,如果「myparam」設置一定不能是可選的。我該如何配置?

回答

5

我猜你可能需要定義兩個路線是:

routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 

routes.MapHttpRoute(
      name: "DefaultApiWithMyParam", 
      routeTemplate: "api/{controller}/{id}/{myparam}" 
     ); 

第一條路線將匹配所有URL無論它們是否包含ID,而第二個將匹配包含值的網址爲id和myparam。請注意,第二條路線中沒有可選段。