2012-12-31 38 views
2

我在处理“Code Camper”样本SPA应用程序。我在安装了MVC 4的VS 2010上运行应用程序。但是我遇到了LookupsController的问题。在asp.net web api中找到了与请求相匹配的多个操作

这是我得到的错误:

"exceptionMessage":"Multiple actions were found that match the request: \r\nSystem.Collections.Generic.IEnumerable`1[CodeCamper.Model.Room] GetRooms() on type 
CodeCamper.Controllers.LookupsController\r\nSystem.Collections.Generic.IEnumerable`1[CodeC 
amper.Model.TimeSlot] GetTimeSlots() on type 
CodeCamper.Controllers.LookupsController","exceptionType":"System.InvalidOperationException 
","stackTrace":" at System.Web.Http.Controllers.ApiControllerActionSelector.ActionSelectorCacheItem.SelectActio 
n(HttpControllerContext controllerContext)\r\n at 
System.Web.Http.Controllers.ApiControllerActionSelector.SelectAction(HttpControllerContext 
controllerContext)\r\n at 
System.Web.Http.ApiController.ExecuteAsync(HttpControllerContext controllerContext, 
CancellationToken cancellationToken)\r\n at 
System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsyncInternal(HttpRequestMessage 
request, CancellationToken cancellationToken)\r\n at 
System.Web.Http.Dispatcher.HttpControllerDispatcher.SendAsync(HttpRequestMessage request, 
CancellationToken cancellationToken)" 
+0

那么,你有多个方法具有相同的(动作)名称? –

+0

不,我只是有我这样的控制器(https://github.com/obkalu/SPA-CodeCamper/blob/master/CodeCamper/CodeCamper.Web/Controllers/LookupsController.cs) –

+0

你的路线配置理想吗? https://github.com/obkalu/SPA-CodeCamper/blob/master/CodeCamper/CodeCamper.Web/App_Start/RouteConfig.cs它看起来像你的请求在某种程度上匹配非动作路由,并找到两个方法的前缀GET和示数。您是否将路线限制保存在ID中? 'constraints:new {id = @“^ \ d + $”} // id必须为全部数字' –

回答

3

我找到了答案!

当您创建一个Web API项目,默认情况下有这行代码中的global.asax.cs

WebApiConfig.Register(GlobalConfiguration.Configuration);

我删除了它(正如我从codecamper的源代码中看到的那样),现在没有问题了!但我不知道为什么很好

+4

WebApiConfig.Register(在App_Start中)再次注册路由,更多的是它将注册标准路由配置,它保持不变(从模板默认值)查找{controller}但不是操作,因此使用方法命名约定。如果这条路线赢得了比赛,那么将会有多个以Get为单词开始的动作,并给你你的错误。 –

+0

tnx @MarkJones为您的描述。 –

+0

@MarkJones这也适用于我...所以你说的路线配置将路线映射到控制器方法,并且WebApiConfig做同样的事情,如果2冲突,你会得到一个错误? –

相关问题