abp 调用 WebApi 找到了与该请求匹配的多个操作

.Net技术 码拜 5年前 (2020-05-30) 4732次浏览 0个评论

新建了一个abp的web 项目,当我尝试调用WebApi的方法时,一直收到此错误

在 WebApi 中找到了与该请求匹配的多个操作

abp 调用 WebApi 找到了与该请求匹配的多个操作

我一直在网上寻找其他类似问题,我有2个不同名称的方法,并使用“ HttpGet”属性,例如:

[HttpGet]
public HttpResponseMessage Summary(MyVm vm)
{
    return null;
}

[HttpGet]
public HttpResponseMessage FullDetails()
{
    return null;
}

最终找到的原因和解决方案是:路由设置问题

默认的web api路由是这样的:

routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional });

但是,为了使用相同的http方法执行多个不同操作,您需要通过按如下方式进行修改路由:

routes.MapHttpRoute(
name: "API Default",
routeTemplate: "api/{controller}/{action}/{id}",
defaults: new { id = RouteParameter.Optional });

如果确实不需要action url参数,可以通过不同参数来实现:

例如,您的两种方法可以变成:

public HttpResponseMessage Get()
{
    return null;
}

public HttpResponseMessage Get(MyVm vm)
{
    return null;
}

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明abp 调用 WebApi 找到了与该请求匹配的多个操作
喜欢 (3)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!