关于swagger——WebApi一个controller中出现多个Get是出现错误的处理

 

 

 /// <summary>
    /// 测试处理
    /// </summary>
    public class TestController : ApiController
    {
        /// <summary>
        /// 根据角色获取该角色所有拥有的功能
        /// </summary>
        /// <param name="roleid"></param>
        /// <returns></returns>
        [HttpPost]
        [Common.AccessToken]
        public Common.ResponseHeader GetByRole(int roleid)
        {
            return new Common.ResponseHeader { code=0,msg="",data=null};
        }

        /// <summary>
        /// 获取所有功能
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        [Common.AccessToken]
        public Common.ResponseHeader GetAll()
        {
            return new Common.ResponseHeader { code = 0, msg = "", data = null };
        }
        /// <summary>
        /// 获取所在代理下的所有功能
        /// </summary>
        /// <param name="id">ces</param>
        /// <returns></returns>
        [HttpGet]
        [Common.AccessToken]
        public Common.ResponseHeader GetAll(int id)
        {
            return new Common.ResponseHeader { code = 0, msg = "", data = null };
        }
    }

 这段代码会产生如下图的结果:

解决方案

对WebApiConfig中的路由进行修改

config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{action}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

重新运行  问题得到解决

posted @ 2018-05-14 15:17  阿小星  阅读(564)  评论(0编辑  收藏  举报