MVC は初めてですが、MVC Web API を作成しようとしていますが、ルーティングに問題があります。
次の URL パターンを使用しようとしています。
/api/venue/1999 // doesn't work
/api/venue/1999/images/ // works
2 番目の URL パターンは正常に機能しますが、最初の URL パターンにアクセスしようとすると、次のようなエラーが表示されます。
要求に一致する複数のアクションが見つかりました: タイプ VenuefinderWebAPI.Controllers.VenueController の VenuefinderWebAPI.Models.Venue Get(Int32) System.String[] タイプ VenuefinderWebAPI.Controllers.VenueController の Images(Int32)
私のルーティングが間違っているのか (複数の一致)、それともコントローラー クラスの何かなのかはわかりません。どうすればこれを修正できますか?
私のwebApiConfigにはこれがあります:
config.Routes.MapHttpRoute(
name: "VenueImages",
routeTemplate: "api/venue/{venueID}/images/",
defaults: new { controller="Venue", action = "images" }
);
config.Routes.MapHttpRoute(
name: "VenueDefault",
routeTemplate: "api/venue/{venueID}",
defaults: new { controller = "Venue" }
);
VenueController.cs には次のものがあります。
// GET api/venue/5
public Venue Get(int venueID)
{
// code
}
and
[HttpGet]
[ActionName("images")]
string[] Images(int venueID)
{
// code
}