重庆设计网站建设,怎样低成本做网站推广,网站域名地址查询,食品分类目录最近需要在项目中添加一个Web Api#xff0c;项目是.net mvc4项目。要想添加一个api#xff0c;无论你怎么封装#xff0c;无非就是在Application_Start方法中将WebApi的路由注册进去就行了。例如如下代码#xff1a; public static class WebApiConfig{public static void…最近需要在项目中添加一个Web Api项目是.net mvc4项目。要想添加一个api无论你怎么封装无非就是在Application_Start方法中将WebApi的路由注册进去就行了。例如如下代码 public static class WebApiConfig{public static void Register(HttpConfiguration config){config.Routes.MapHttpRoute(name: DefaultApi,routeTemplate: api/{controller}/{id},defaults: new { id RouteParameter.Optional });}}将上面的Register方法在Application_Start方法中调用就相当于注册完成。可是笔者已经完成了以上工作访问Api还是404错误找不到。百思不得其解啊。。。 最后发现原来路由的注册顺序有关系。正常的mvc项目会注册普通Controlleraction的路由信息例如如下代码 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 });}该方法也会在Application_Start中调用。 关键来了要先调用Api对应的注册路由方法后调用普通Controller的路由注册方法。因为笔者是后来在项目中添加的WebApi所以就在最后注册的Api路由可就是无法访问到。最后将它在普通路由之前注册就成功访问到了 不知道这是.net mvc的bug还是就是这么设计的。转载于:https://www.cnblogs.com/dreamofei/p/4481727.html