我正在使用Web API来公开一堆服务。我遇到了一些问题,需要一些帮助。ASP.NET Web API - 路由
我已经定义了默认路由:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional}
);
有了这条路,我可以打正常的途径,如: '/ API /客户/' 和 '/ API /客户/ 4'。我想要一个GET命中以下路线'api/clients/4/profiles'和'api/clients/4/validationations'。
我曾尝试没有成功以下途径:
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?
你有什么错误? – tcarvin
@tcarvin:未找到与请求URI'http:// localhost:4422/api/clients/11/profiles'匹配的HTTP资源。在控制器的“客户”上找不到与请求匹配的操作。 – Skadoosh