3

次の 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が呼ばれることを期待しています。

ルート設定の何かが間違っていると確信しています...

4

1 に答える 1