Asp.net WebApi 中使用多个Post请求,Swagger无法识别的问题

在使用Swagger WebApi文档框架时,一个Controll中写多个Post接口时,在MVC4中会提示无法识别的多个post请求,原因是WebApiConfig中默认路由配置中是没有配置{action}引起的。

【在MVC5中没有此问题,原因是MVC5有Route[” “]特性,MVC4中不支持】

解决方案:

方法1:修改WebApiConfig文件

 //默认配置  
           config.Routes.MapHttpRoute(  
               name: "DefaultApi",  
               routeTemplate: "api/{controller}/{id}",  
               defaults: new { id = RouteParameter.Optional }  
           );  
           //修改后配置  
           config.Routes.MapHttpRoute(  
               name: "DefaultApi",  
               routeTemplate: "api/{controller}/{action}/{id}",  
               defaults: new { id = RouteParameter.Optional }  
           );

方法2:MVC5中可以不修改默认配置文件,而使用Route特性来指定

   /// <summary>
        /// POST请求1
        /// 
        ///api/Member
        /// </summary>
        /// <param name="value"></param>
        public void Post([FromBody]string value)
        {
 
        }
 
        /// <summary>
        /// POST请求2
        /// api/Member/Login
        /// </summary>
        /// <param name="loginId"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        [HttpPost, Route("api/Member/Login")]
        public string Login([FromBody]string loginId, [FromBody]string password)
        {
            return "";
        }

发布者:IT柚子,转转请注明出处:https://ityouzi.com/archives/aspnet_webpi_post_swagger_error.html

(3)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
IT柚子的头像IT柚子
上一篇 2019年3月30日 下午1:26
下一篇 2019年3月30日 下午4:20

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注