我正在使用 Web API 来公开一堆服务。我遇到了一些路线问题,需要一些帮助。
我定义了默认路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional}
);
使用这条路线,我可以到达正常路线,例如:'/api/clients/' 和 '/api/clients/4'。我想要一个 GET 访问以下路由“api/clients/4/profiles”和“api/clients/4/validations”。
我尝试了以下路线但没有成功:
config.Routes.MapHttpRoute(
name: "ClientProfilesApi",
routeTemplate: "api/{controller}/{clientid}/profiles",
defaults: new { action = RouteParameter.Optional },
constraints: new { controller = "clients" }
);
config.Routes.MapHttpRoute(
name: "ClientValidationsApi",
routeTemplate: "api/{controller}/{clientid}/validations",
defaults: new { action = RouteParameter.Optional },
constraints: new { controller = "clients" }
);
我还尝试使用“ActionName”属性,如下所示:
[HttpGet]
[ActionName("profiles")]
public IEnumerableResponseDto<ProfileLayoutDto> GetProfiles(Int64 clientId, [FromUri] IEnumerableRequestDto request)
{ .... }
[HttpGet]
[ActionName("profiles")]
public IEnumerableResponseDto<ValidationLayoutDto> GetValidations(Int64 clientId, [FromUri] IEnumerableRequestDto request)
{ .... }
我错过了什么?一个控制器中不可能有多个 GET 吗?