我有这条路线:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{myparam}",
defaults: new { id = RouteParameter.Optional, myparam = RouteParameter.Optional }
);
'id'应该是可选的,'myparam'应该是可选的,但如果'myparam'被设置,'id'不能是可选的。我该如何配置?
答案 0 :(得分: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值的URL。请注意,第二条路线中没有任何段是可选的。