【问题标题】:WebAPI2 and MVC5 route configWebAPI2 和 MVC5 路由配置
【发布时间】:2014-06-14 19:15:57
【问题描述】:

我编写了一个运行良好的 C# ASP.net MVC5 互联网应用程序,我可以使用 Person 模型进行 CRUD 操作。

我添加了一个使用实体框架的 WebAPI2 控制器,但在尝试浏览任何 WebAPI 控制器方法时出现错误。

WebAPI2 控制器称为PersonAPIControllerGetpeople 方法在方法上方有 // GET api/PersonAPI 注释,但在浏览此方法时,我收到此错误:

找不到资源。

这是路由问题吗?

我有一个RouteConfig 和一个WebApiConfig。这两个配置需要合并吗?

这里是RouteConfig的内容:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    );
}

这里是WebApiConfig的内容:

public static void Register(HttpConfiguration config)
{
    config.MapHttpAttributeRoutes();

    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{id}",
        defaults: new { id = RouteParameter.Optional }
    );
}

目前,这是我的Application_Start 方法:

protected void Application_Start()
{
    AreaRegistration.RegisterAllAreas();
    RouteConfig.RegisterRoutes(RouteTable.Routes);
}

WebApiConfig.Register()这行代码需要加在RouteConfig.RegisterRoutes(RouteTable.Routes)之前吗?

如果有,WebApiConfig.Register()方法需要添加什么参数?

提前致谢

编辑

这是要使用的确切代码:

GlobalConfiguration.Configure(WebApiConfig.Register);

【问题讨论】:

    标签: c# asp.net-web-api asp.net-mvc-routing asp.net-mvc-5 config


    【解决方案1】:

    确保在RegisterRoutes(RouteCollection routes) 之前调用Register(HttpConfiguration config)。顺序很重要。

    【讨论】:

      【解决方案2】:

      调用 /api/personapi 而不是 /api/personapi/getpeople

      【讨论】:

        猜你喜欢
        • 2017-09-29
        • 1970-01-01
        • 2017-05-19
        • 2014-01-12
        • 2016-09-04
        • 1970-01-01
        • 1970-01-01
        • 2014-11-10
        • 2014-01-20
        相关资源
        最近更新 更多