mvc webapi路由重写
修改app_start/webapiconfig.cs
using System.Web.Http; using System.Web.Routing; using Ninject; using TxMobile.Filters; using TxMobile.Models; using WebApiContrib.IoC.Ninject; namespace TxMobile { /// <summary> /// WebApi路由配置 /// </summary> public static class WebApiConfig { /// <summary> /// 构造函数 /// </summary> /// <param name="config"></param> public static void Register(HttpConfiguration config) { config.Filters.Add(new ValidateAttribute()); IKernel kernel = new StandardKernel(); kernel.Bind<ICommentRepository>().ToConstant(new InitialData()); config.DependencyResolver = new NinjectResolver(kernel); config.Routes.MapHttpRoute( name: "productlist", routeTemplate: "{controller}/prod/list", defaults: new { controller = "IAP", action = "ProductList" }, constraints: new { httpMethod = new HttpMethodConstraint("GET","Post") } ); config.Routes.MapHttpRoute( name: "productbuy", routeTemplate: "{controller}/prod/buy", defaults: new { controller = "IAP", action = "ProductBuy" }, constraints: new { httpMethod = new HttpMethodConstraint("GET","Post") } ); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); } } }
注意事项:
1、可以对某个action进行重写,写成任意格式的url
2、必须要把重写的action路由代码,放到DefaultApi前面。