【问题标题】:ASP.NET Web API 2 Same Route Name Different POST Model TypeASP.NET Web API 2 相同的路由名称不同的 POST 模型类型
【发布时间】:2018-05-28 10:50:29
【问题描述】:

我试图在 API 控制器上使用两个具有相同 [Route] 名称但参数类型不同的操作方法。一个接受特定对象,另一个接受该对象类型的数组。

模型绑定器似乎无法区分这些,并且返回以下错误:

Multiple actions were found that match the request

有没有办法让两个 POST 方法具有相同的路由但参数类型不同?

【问题讨论】:

  • 向我们展示您的代码!
  • 为什么?这会增加什么价值?解释起来也很简单。

标签: asp.net asp.net-web-api http-post asp.net-web-api2 model-binding


【解决方案1】:

您不能有 2 个具有相同路由和相同 http 动词(如 Post)的操作。 而且我认为在这个例子中使用不同的路由会更好:

/api/controllerName/PostType

/api/controllerName/PostListType

将来它会更易读和更容易维护。当其他人创建客户端应用程序时,路由将不言自明。

【讨论】:

    【解决方案2】:

    使用路线

    [RoutePrefix("api/FooModule")]
    public class FooController:ApiController
    {
    
    [Route("Get"),HttpGet]
    public IHttpActionResult Get(){...}
    
    [Route("GetOther"),HttpGet]
    public IHttpActionResult GetOther(){...}
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2014-05-30
      • 2020-09-19
      • 2013-12-12
      • 1970-01-01
      相关资源
      最近更新 更多