ASP.NET MVC4 Web API中可以通过使用路由配置提供自定义的URL结构,以便根据请求URI来匹配控制器和操作方法。以下是解决该问题的步骤:
public static class WebApiConfig { public static void Register(HttpConfiguration config) { // Web API configuration and services // Configure Web API to use only bearer token authentication. config.SuppressDefaultHostAuthentication(); config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
config.Routes.MapHttpRoute( name: "myroute", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } );
此代码段将为控制器和操作方法提供自定义的URL结构。
例如,在具有以下类的控制器中:
public class ProductsController : ApiController { public HttpResponseMessage Get(int id) { ... }
public HttpResponseMessage GetAll() { ... }
public HttpResponseMessage GetCategoryProducts(int categoryId) { ... }
}
下列URL将集中控制器和操作方法,并返回相应结果:
/api/products/1 /api/products /api/products/GetCategoryProducts /2