如何通过http请求发送空的url参数?

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

im使Alexa技能可以提供有关用餐的信息。有了这项技能,用户就可以要求菜单了。他们可以只要求菜单,也可以要求特定菜单,例如早餐菜单。但是我希望Breakfast参数和甜点类型菜单之类的参数是可选的。我现在将GET请求发送到url:... / Day /(day)/ Slot /(slot)/ Type /(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参数为空时,请求将找到控制器。但是当两者或为null或仅slotId参数为null时,请求将找不到控制器。当两个参数都为null时,请求将如下所示:“ something / Day / 2020-02-20 / Slot // Type /”

我做错了什么?感谢您的帮助。

c# http asp.net-core url
1个回答
0
投票

您可以修改路线

[HttpGet]
[Route("something/Day/{day:datetime}")]
public async Task<List<something>> GetMeals(LocalDate day, long? slotId = 1, long? typeId = null)

使用示例:

something/Day/2020-03-25/?slotId=1&typeId=2
© www.soinside.com 2019 - 2024. All rights reserved.