我编写了一个运行良好的C#ASP.net MVC5互联网应用程序,我可以使用Person
模型进行CRUD操作。
我添加了一个使用实体框架的WebAPI2控制器,但在尝试浏览任何WebAPI控制器方法时遇到错误。
WebAPI2控制器名为PersonAPIController
。 Getpeople
方法在方法上方有// 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);
答案 0 :(得分:1)
确保在Register(HttpConfiguration config)
之前致电RegisterRoutes(RouteCollection routes)
。顺序很重要。
答案 1 :(得分:0)
致电/ api / personapi而不是/ api / personapi / getpeople