WebApi在MVC 4中一个Controll多个post方法报错处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lqh4188/article/details/53542400

在使用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.API接口示例

        [HttpPost]
        [ActionName("UserInfo")]
        public string UserInfo(string name)
        {
            return name;
        }


3.MVC5中可以不修改默认配置文件,而使用Route特性来指定

        [Route("api/Account/HideApi")]        
        [HttpGet]
        public HttpResponseMessage HideApi(string value)
        {
            return Request.CreateResponse(HttpStatusCode.OK, new { errorCode = "0", value = value });
        }



猜你喜欢

转载自blog.csdn.net/lqh4188/article/details/53542400