这是我的api controller
方法,用于获取按用户ID过滤的项目列表。
public IEnumerable<MyItemListItemDTO> Get(int userId)
从客户端调用该方法时,为什么/MyItems/Get/11
无法工作而/MyItems/Get?userId=11
无效?
答案 0 :(得分:1)
因为在参数化网址上,参数的名称是id
而不是userId
。模型绑定器检查参数的名称以进行绑定。查看路线定义,您将看到。
我的意思是,基本上是RouteConfig.cs
文件中你有以下默认路由:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
查看网址为controller/action/id
,最后一个参数的名称为id
。因此,在某些操作中,要接收该段URL,您必须匹配参数的名称。