WebApi:使用方法名或者控制器名作为接口地址

  今天遇到一个问题:新建的WebApi的项目生成的接口的地址都是以控制器的名字命名的,这样的话,在方法前添加ActionName就不起作用了,但之前一个项目是可以的。

  接口代码:

    public class ValuesController : ApiController
    {
        /// <summary>
        /// 接口地址测试
        /// </summary>
        /// <returns></returns>
        [System.Web.Http.ActionName("Rename")]
        public IEnumerable<string> Get()
        {
            return new string[] { "value1", "value2" };
        }
    }

  生成的接口地址:

  

  折腾了一番,才想起来ASP.NET中有个叫路由的东西。OK,修改App_Start/WebApiConfig.cs

  修改前代码:

 routeTemplate: "api/{controller}/{id}",

  修改后代码:

routeTemplate: "api/{controller}/{action}/{id}",

  修改后的接口地址:

  

  有空研究一下MVC的路由机制。

原文地址:https://www.cnblogs.com/MQNH/p/5609550.html