Web API路由彼此冲突

时间:2020-04-10 18:21:06

标签: c# api routing

很抱歉,如果以前有人问过这个问题,我可能搜索的不够好。

我正在使用属性路由。基本上我有
[Route("api/studies")]为我提供了类型研究的列表。
[Route("api/studies/{id}/{detail?}")]这给了我一项研究。它有一个可选参数detail,用于指定详细程度。
[Route("api/studies/{id}/subjects")]这给了我研究中的主题清单。

问题是,当我测试主题路线时,它调用/api/studies/{id}/{detail?}并将“主题”作为detail参数传递。我完全理解为什么,我只是好奇是否有办法防止它发生。

1 个答案:

答案 0 :(得分:0)

好的,我知道了。首先,我没有给他们分配订单。我做到了,但还是没用。但是...对我的帖子并不完全诚实,我遗漏了一些我认为不相关的内容。主题具有一堆可选参数,它们是整数,我认为可以像这样将它们放入其中:
public List<Subject> Subjects(long id, int? limit, int? offset)

显然这还不够。必须为:
public List<Subject> Subjects(long id, int? limit = null, int? offset = null)

不知道我必须将它们分配为null!

相关问题