Web API路由相互冲突

问题描述 投票:0回答:1

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

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

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

c# api routing
1个回答
0
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.