所以我只花了一小时的时间来调试为什么我在System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(System.Net.Http.HttpRequestMessage request) + 0x33f byte
上收到客户端404和服务器端System.Web.Http.HttpResponseException
;不管我尝试过什么,我都无法让我的ApiController衍生产品接收请求。保留的ASP.NET MVC控制器名称?
最后,在尝试将其转换为常规Controller
无效后,我发现将名称从APIController
更改为APIXController
只是为了让所有内容都能正常工作。
- 它在哪里说
API
是保留的控制器名称? - 保留控制器名称的完整列表在哪里?
- 是否可以绕过使用
APIController
作为我的班级名称的限制,如果是的话,我该怎么做呢?
一个我检查的第一件事情是我的路由配置,这是沼泽标准
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
你说得对。我没有意识到WebApi有一个单独的路由文件。 – 2013-03-07 03:17:45