これを機能させるために MVC ルーティングで何をする必要があるのか わかりません
これが私の1つのルートです:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}/{action}",
defaults: new { id = RouteParameter.Optional, action = RouteParameter.Optional }
);
リクエスト/Shipments/はうまく機能します。
リクエスト/Shipments/3/Packagesはうまく機能します。
ただし、リクエスト/Shipments/3は次のエラーで失敗します。
要求に一致する複数のアクションが見つかりました: System.Linq.IQueryable`1[Api.Controllers.RequisitionsController+PackageRequisitionWithTracking] タイプ Api.Controllers.RequisitionsController の GetPackageRequisitions(Int32) Api.Models.ShipmentRequisition タイプ Api.Controllers の GetShipmentRequisitions(Int32) .RequisitionsController
以下を区別できないようです。
// No ActionName
public ShipmentRequisition GetShipmentRequisitions(int id)
と
[ActionName("Packages")]
public IQueryable<PackageRequisitionWithTracking> GetPackageRequisitions(int id)
get shipping by id にアクション名がないため、そのルートが機能すると思っていたでしょう。