我正在使用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