次の 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
が呼ばれることを期待しています。
ルート設定の何かが間違っていると確信しています...