2012-07-11 129 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。请注意,第二条路线中没有可选段。