我是 MVC 新手,但我正在尝试创建 MVC Web API,但我遇到了路由问题。
我正在尝试使用以下 URL 模式:
/api/venue/1999 // doesn't work
/api/venue/1999/images/ // works
第二个 URL 模式工作正常,但如果我尝试访问第一个,我会收到一条错误消息:
找到与请求匹配的多个操作: VenuefinderWebAPI.Controllers.VenueController 类型上的 VenuefinderWebAPI.Models.Venue Get(Int32) System.String[] Images(Int32) 类型 VenuefinderWebAPI.Controllers.VenueController
我不确定是我的路由错误(多个匹配)还是我的控制器类中的某些东西。如何解决这个问题?
在我的 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
}