我创建了一个 WebApi 2 Web 服务。 为了支持比某些端点的默认路由更复杂的路由,我添加了如下内容:
config.Routes.MapHttpRoute(
name: "StatusApi",
routeTemplate: "api/{controller}/Status/{status}",
defaults: new { status = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "DisplayUnitApi",
routeTemplate: "api/{controller}/DisplayUnit/{unit}",
defaults: new { status = RouteParameter.Optional }
);
我的意思是这些新路由不是针对所有端点,而是仅针对其中一些端点。 不幸的是现在所有端点都支持这些路由,但我更愿意仅为我选择的端点保留新路由。
是否有可能有选择性?
一个例子:
POST api/DoAction
POST api/DoAction/Status
POST api/DoAction/Name/{unit}
在添加新路由之前,唯一可用的是 POST api/DoAction。对于此 Controller ,我想仅保留原始端点可访问。
谢谢, 罗伯托
最佳答案
尝试下面的代码
config.Routes.MapHttpRoute(
name: "StatusApi",
routeTemplate: "api/{controller}/Status/{status}",
defaults: new { controller = "xxxx", action = "yyyyy" });
config.Routes.MapHttpRoute(
name: "DisplayUnitApi",
routeTemplate: "api/{controller}/DisplayUnit/{unit}",
defaults: new { controller = "xxx", action = "yyyyy" });
关于web-services - 指定 Controller 的MapHttpRoute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35204745/