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 /”
我做错了什么?感谢您的帮助。
您可以修改路线
[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