所以我花了大约一个小时来调试为什么我收到客户端 404 和服务器端System.Web.Http.HttpResponseException
on System.Web.Http.dll!System.Web.Http.Dispatcher.DefaultHttpControllerSelector.SelectController(System.Net.Http.HttpRequestMessage request) + 0x33f byte
;无论我如何尝试,我都无法让我的 ApiController 衍生品接收请求。
最后,在尝试将其转换为常规之后Controller
但没有效果,我想到将名称更改为APIController
to APIXController
只是为了让一切正常运转。
- 哪里有说明
API
是保留的控制器名称吗?
- 保留控制器名称的完整列表在哪里?
- 是否可以绕过此使用限制
APIController
作为我的班级名称,如果是这样,我该怎么做?
我检查的第一件事就是我的路线配置,这是沼泽标准
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
APIController 不是保留名称。但是,如果您使用标准 MVC4 模板,则默认情况下它包含 WebAPI 堆栈的实例,并且这会注册以 /api 开头的路由
你很可能遇到过这种情况。
查看 AppStart 下的 WebApiConfig.cs 文件。
顺便说一句,关键的调试症状是 WebApi 使用的 System.Web.Http 中的任何内容,并且不会显示在 MVC 应用程序中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)