【问题标题】:Passing a parameter on a Web API Get method在 Web API Get 方法上传递参数
【发布时间】:2014-04-27 06:07:33
【问题描述】:

这是我的api controller 方法,用于获取按用户 ID 过滤的项目列表。

public IEnumerable<MyItemListItemDTO> Get(int userId)

当从客户端调用方法时,为什么/MyItems/Get/11 不起作用而/MyItems/Get?userId=11 起作用?

【问题讨论】:

    标签: asp.net-web-api


    【解决方案1】:

    因为在参数化 URL 上,参数名称是 id 而不是 userId。模型绑定器检查参数的名称以进行绑定。查看路由定义,您会看到。

    我的意思是,基本上是在RouteConfig.cs 文件中,默认路由如下:

    routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
    

    看看URL是controller/action/id,最后一个参数的名字是id。因此,在某些操作中,要接收那段 URL,您必须匹配参数的名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-03-12
      • 2013-11-22
      • 1970-01-01
      • 2021-06-30
      相关资源
      最近更新 更多