C#Web Api 2.1返回404

C#Web Api 2.1返回404,c#,asp.net-web-api,asp.net-web-api2,asp.net-web-api-routing,C#,Asp.net Web Api,Asp.net Web Api2,Asp.net Web Api Routing,我已经从MVC空模板创建了一个新的C#WebApi 2.1,我不知道为什么,当我创建自定义路由时,它返回404。否则就可以了 Global.asax 受保护的无效应用程序\u Start() { RegisterAllAreas(); GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHa

我已经从MVC空模板创建了一个新的C#WebApi 2.1,我不知道为什么,当我创建自定义路由时,它返回404。否则就可以了

Global.asax
受保护的无效应用程序\u Start()
{
RegisterAllAreas();
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling=Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
//RouteConfig.RegisterRoutes(RouteTable.Routes);
//BundleConfig.RegisterBundles(BundleTable.Bundles);
}
公共静态类WebApiConfig
{
公共静态无效寄存器(HttpConfiguration配置)
{
//Web API配置和服务
//Web API路由
config.maphttpAttribute路由();
config.Routes.MapHttpRoute(
名称:“DefaultApi”,
routeTemplate:“api/{controller}/{id}”,
默认值:新建{id=RouteParameter.Optional}
);
config.Formatters.JsonFormatter.SupportedMediaTypes
.Add(新的MediaTypeHeaderValue(“应用程序/json”);
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver=新的CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.UseDataContractJsonSerializer=false;
}
}
工作路线(
ChannelsController.cs
):

路由返回404(
videoscocontroller.cs

[路由(“api/channels/{channelId}/视频”)]
[HttpGet]
公共HttpResponseMessage GetVideosByChannelId(int channelId,[FromUri]int page=1,[FromUri]int pageSize=12){
...
}

你能帮我查一下吗?对于第二个示例,您是否确实使用
通道
而不是
通道
调用API?我在本地复制了您的代码以进行尝试,除了我必须将
ChannelsController
重命名为
ChannelsController
之外,一切都正常。我知道你说过这条路线是有效的,但这让我想知道你是否有一个简单的打字错误,你复制了第二条路线上的404@约翰:哎呀,我修好了排版,谢谢你修好了。这意味着我无法复制。这两条路线对我都有效。@JohnH-ha-crap,我发现了问题所在。只是班名上的一个愚蠢的输入错误(我不知道为什么!!)。最后是1。视频控制器1。。。谢谢你的反馈!哈哈,没问题!你能帮我查一下吗?对于第二个示例,您是否确实使用
通道
而不是
通道
调用API?我在本地复制了您的代码以进行尝试,除了我必须将
ChannelsController
重命名为
ChannelsController
之外,一切都正常。我知道你说过这条路线是有效的,但这让我想知道你是否有一个简单的打字错误,你复制了第二条路线上的404@约翰:哎呀,我修好了排版,谢谢你修好了。这意味着我无法复制。这两条路线对我都有效。@JohnH-ha-crap,我发现了问题所在。只是班名上的一个愚蠢的输入错误(我不知道为什么!!)。最后是1。视频控制器1。。。谢谢你的反馈!哈哈,没问题!
WebApiConfig.cs
// GET api/channels
public HttpResponseMessage Get([FromUri] int page = 1, [FromUri] int pageSize = 12)
{
    ...
}