我刚刚花费了一小时来调试,尝试解决我遇到的问题:客户端显示404错误,服务器返回System.Web.Http.HttpResponseException
异常,提示是在System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(System.Net.Http.HttpRequestMessage request) + 0x33f byte
处出现的;无论我尝试了什么方法,我的ApiController派生类都无法接收请求。
最终,我试图将其转换为常规的Controller
,但没有效果。突然想到,只需将名称从APIController
更改为APIXController
即可使一切正常。
- 哪里说明了
API
是保留的控制器名称? - 完整的保留控制器名称列表在哪里?
- 是否有可能绕过使用
APIController
作为类名的限制,如果可以,如何操作?
我检查的第一件事是我的路由配置,这是标准设置:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);