gpt4 book ai didi

c# - 如何在 Web API 中传递可选参数

转载 作者:行者123 更新时间:2023-12-03 22:31:24 25 4
gpt4 key购买 nike

你能帮我在 uri 之间传递可选参数吗

[Route("api/values/{a}/{b?}/{c?}")]
public string Get(string a = "", string b = "", string c = "")
{
return string.Format("a={0}, b={1}, c={2}", a, b, c);
}

我可以调用 api -

api/values/abc/pqr/xyz returns a=abc, b=pqr, c=xyz
api/values/abc/pqr returns a=abc, b=pqr, c=

但我想这样调用 api -

api/values/abc//xyz which should return a=abc, b=, c=xyz
returns a=abc, b=xyz, c=

谁能帮忙

最佳答案

这就是 URI 的本来面目——它们应该代表对象的特定路径。如果没有在途中指定“b”或“a”,您应该无法到达“c”。

但是如果你真的想,也许只是使用某种通配符作为值?例如:/api/values/abc/*/xyz ,在您的代码中只需检查路径的一部分是否是您的通配符。这样您就可以扩展 URI 的逻辑而不是破坏它。 URI 将保持人类可读且显而易见(例如,获取在某种程度上是容器 ABC 的后代的所有值 XYZ)。

为了保持干燥,请编写一个自定义模型绑定(bind)器,它将在 URL 中找到的任何通配符转换为空(或其他)值,然后将其传递到您的 Controller 。查看 System.Web.Http.ModelBinding 命名空间以帮助您入门。

关于c# - 如何在 Web API 中传递可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34426726/

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