C# WebAPI2和MVC5路由配置
我已经编写了一个C#ASP.net MVC5 internet应用程序,该程序运行良好,我可以使用C# WebAPI2和MVC5路由配置,c#,asp.net-web-api,asp.net-mvc-routing,asp.net-mvc-5,config,C#,Asp.net Web Api,Asp.net Mvc Routing,Asp.net Mvc 5,Config,我已经编写了一个C#ASP.net MVC5 internet应用程序,该程序运行良好,我可以使用Person模型执行CRUD操作 我添加了一个WebAPI 2控制器,它使用实体框架,但在尝试浏览任何WebAPI控制器方法时出错 WebAPI2控制器称为PersonAPIController。Getpeople方法在方法上方有//GET-api/PersonAPI注释,但是当浏览此方法时,我发现以下错误: 找不到资源 这是一个路由问题吗 我有一个RouteConfig和一个WebApiConfi
Person
模型执行CRUD操作
我添加了一个WebAPI 2控制器,它使用实体框架,但在尝试浏览任何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 }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
以下是WebApiConfig
的内容:
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 }
);
}
public static void Register(HttpConfiguration config)
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
目前,这是我的应用程序\u Start
方法:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
是否需要将WebApiConfig.Register()
行代码添加到RouteConfig.registerOutes(RouteTable.Routes)
之前
如果是,需要添加到WebApiConfig.Register()
方法的参数是什么
提前谢谢
编辑
下面是要使用的确切代码:
GlobalConfiguration.Configure(WebApiConfig.Register);
确保在调用registerOutes(RouteCollection routes)之前调用
寄存器(HttpConfiguration config)
。顺序很重要 调用/api/personapi而不是/api/personapi/getpeople