次の 2 つのルートが定義されています。
routes.MapRoute(
name: "GetVoucherTypesForPartner",
url: "api/Partner/{partnerId}/VoucherType",
defaults: new { controller = "Partner", action = "GetVoucherTypesForPartner"}
);
routes.MapRoute(
name: "Default",
url: "api/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional}
);
私のPartnerProfileコントローラーには、2 つのメソッドがあります。
public Partner Get(string id)
{ }
public IEnumerable<string> GetVoucherTypesForPartner(string id)
{ }
URL にアクセスする~/api/Partner/1234と、予想どおり、Getメソッドが呼び出されます。
ただし、URL にアクセス~/api/Partner/1234/VoucherTypeすると、同じGetメソッドが呼び出されます。代わりに私GetVoucherTypesForPartnerが呼ばれることを期待しています。
ルート設定の何かが間違っていると確信しています...