Asp.net web api 在Web API Get方法上传递参数
这是我的Asp.net web api 在Web API Get方法上传递参数,asp.net-web-api,Asp.net Web Api,这是我的api控制器方法,用于获取由用户id过滤的项目列表 public IEnumerable<MyItemListItemDTO> Get(int userId) public IEnumerable Get(int-userId) 从客户端调用方法时,为什么/MyItems/Get/11不起作用,而/MyItems/Get?userId=11起作用?因为在参数化URL上,参数的名称是id,而不是userId。模型绑定器检查参数的名称以进行绑定。查看路线定义,您将看到这一点
api控制器
方法,用于获取由用户id过滤的项目列表
public IEnumerable<MyItemListItemDTO> Get(int userId)
public IEnumerable Get(int-userId)
从客户端调用方法时,为什么
/MyItems/Get/11
不起作用,而/MyItems/Get?userId=11
起作用?因为在参数化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片段,必须匹配参数的名称