web api 2 路由 - 找不到资源
Posted
技术标签:
【中文标题】web api 2 路由 - 找不到资源【英文标题】:web api 2 routing - The resource cannot be found 【发布时间】:2014-03-22 22:55:45 【问题描述】:我已将 Web Api 控制器添加到 MVC 5 应用程序,但一直收到错误 404 - 找不到资源。我已将 GlobalConfiguration.Configure(WebApiConfig.Register) 添加到 Application_Start()
protected void Application_Start()
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
GlobalConfiguration.Configure(WebApiConfig.Register);
我已经注册了路线
public static class WebApiConfig
public static void Register(HttpConfiguration config)
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/controller/id",
defaults: new id = RouteParameter.Optional
);
【问题讨论】:
【参考方案1】:在我将注册 api 方法的位置更改为注册路由的上方后,WebApi 路由开始工作:
protected void Application_Start()
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
GlobalConfiguration.Configure(WebApiConfig.Register);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
【讨论】:
我可以确认这对我来说也是一个问题。 WebApiConfig.Register 需要走在 RouteConfig.RegisterRoutes 之前 有人知道为什么吗?因为如果您创建一个全新的项目,它仍然会出现问题 你是救世主! @ZoranP。你能解释一下原因吗,它对我有用,但我想知道原因。 对我来说 GlobalConfiguration.Configure(WebApiConfig.Register);丢失了,我添加了 WebAPI cotroller vs 创建了 webAPIconfig.cs 文件,但没有添加到 Global.asax以上是关于web api 2 路由 - 找不到资源的主要内容,如果未能解决你的问题,请参考以下文章
在 Next.js 应用程序中找不到 API 路由(找不到该页面)