【问题标题】:web api 2 routing - The resource cannot be foundweb api 2 路由 - 找不到资源
【发布时间】: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 }
        );
    }
} 

【问题讨论】:

    标签: asp.net-web-api


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2020-04-20
    • 2018-05-16
    • 2017-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多