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前面。

原文地址:https://www.cnblogs.com/zsy/p/6791327.html