MVC WebApi 在控制器“”上找不到与该请求匹配的操作

2020-10-20  乐帮网

mvc webapi c#

在WebApi5.0以前调用接口传参数的方式有一些变化,也要从旧项目说起,一个小小的传参方式的变化,以前以URL方式接收参数现在改为从Body中接收Json格式的参数,报以下错:
{
    "Message": "找不到与请求 URI“http://localhost/api/terminal/getpos”匹配的 HTTP 资源。",
    "MessageDetail": "在控制器“terminal”上找不到与该请求匹配的操作。"
}

反复确认过方法名称和传的参数都能对上,不知何故,尝试着在接收参数的地方封装成Model加上一个[FromBody]居然都正常了。在新的webapi5.0及以上就没有这个问题,默认支持从url或者body中取参数。
示例代码如下:

 [HttpPost]
        public IHttpActionResult Login(string username,string uuid)
        {
            Entity.DTO.RespDto<int> respDto = new Entity.DTO.RespDto<int>();
            respDto.code = "1";
                respDto.msg = "验证通过";
                return Json(respDto);
}

改为:

[HttpPost]
        public IHttpActionResult Login([FromBody]ArgModel model)
        {
            Entity.DTO.RespDto<int> respDto = new Entity.DTO.RespDto<int>();
            respDto.code = "1";
                respDto.msg = "验证通过";
                return Json(respDto);
}

  public class ArgModel
    {
        public string username { get; set; }
        public string uuid { get; set; }
    }

推荐文章:

MVC5 webapi2 自定义路由参数无效

MVC WebApi 在控制器“”上找不到与该请求匹配的操作

C# WebApi 获取POST Body内的数据

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力