gpt4 book ai didi

c# - 属性路由识别可选的查询字符串参数

转载 作者:行者123 更新时间:2023-11-30 14:25:07 25 4
gpt4 key购买 nike

我有一个 API 操作:

 [HttpGet, Route("{id}/overview/")]
public async Task<HttpResponseMessage> Overview(string id, DateTime from, DateTime? to)
{
...
}

如您所见,to是可选参数,但是当我发出请求时:

'/api/cream/3d7dd454c00b/overview?from=2016-09-04T18:00:00.000Z

我遇到了 404 错误。如果我删除 to从参数:
public async Task<HttpResponseMessage> Overview(string id, DateTime from)

然后一切正常。如何强制它与 to 一起工作参数?

最佳答案

使用 FromUri 属性并使其成为可选的



[HttpGet, Route("{id}/overview/")]
public async Task Overview(string id, [FromUri]DateTime from, [FromUri]DateTime? to = null)
{
...
}

为了扩展这一点,id 参数被拾取,因为你已经在你的路由中指定了它,框架已经看到一个匹配的路由并尝试调用匹配的方法,即使路由缺少它已经尝试过的剩余参数从查询字符串中提取它们。

然后您会收到 404,因为没有方法与您的调用匹配,这是因为 to DateTime 可以为空但不是可选的。

希望对你有帮助

关于c# - 属性路由识别可选的查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39568742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com