【发布时间】:2012-10-05 18:00:23
【问题描述】:
我是 MVC 新手,但我正在尝试创建 MVC Web API,但我遇到了路由问题。
我正在尝试使用以下 URL 模式:
/api/venue/1999 // doesn't work
/api/venue/1999/images/ // works
第二个 URL 模式工作正常,但如果我尝试访问第一个,我会收到一条错误消息:
找到多个与请求匹配的操作: VenuefinderWebAPI.Models.Venue Get(Int32) on type VenuefinderWebAPI.Controllers.VenueController System.String[] VenuefinderWebAPI.Controllers.VenueController 类型上的图像(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
}
【问题讨论】:
-
它们看起来是多余的......你认为第二条路线应该采取什么行动?
标签: asp.net-mvc asp.net-mvc-4 asp.net-web-api