【发布时间】:2020-07-05 20:17:53
【问题描述】:
我正在制作一项 Alexa 技能来提供有关膳食的信息。使用此技能,用户将能够要求菜单。他们可以只要求一份菜单,也可以要求一份特定的菜单,例如早餐菜单。但我希望早餐参数和甜点菜单等菜单类型的参数是可选的。 我现在向 url 发送一个 GET 请求:.../Day/(day)/Slot/(slot)/Type/(type)。在这个 url 中,我希望 slot 和 type 参数为空。
我现在的代码: 控制器:
[HttpGet]
[Route("something/Day/{day:datetime}/Slot/{slotId:long?}/Type/{typeId:long?}")]
public async Task<List<something>> GetMeals(LocalDate day, long slotId = 1, long? typeId = null)
当两个参数都不为空或只有typeId参数为空时,请求找到控制器。但是当两者都为空或只有 slotId 参数为空时,请求找不到控制器。 当两个参数都为空时,请求如下所示:“something/Day/2020-02-20/Slot//Type/”
我无法更改路由,因为端点已被其他应用程序使用。
我做错了什么?谢谢你的帮助。
【问题讨论】:
-
您是否尝试添加另一个
[Route]属性?喜欢[Route("something/Day/{day:datetime}/Slot/Type/{typeId:long?}")] -
这就是我一直在寻找的,非常感谢。
标签: c# http asp.net-core url