gpt4 book ai didi

c# - WebAPI 路由到具有多个可选参数的函数

转载 作者:行者123 更新时间:2023-11-30 22:03:10 24 4
gpt4 key购买 nike

我在 WebAPI Controller 中将以下函数 header 声明为路由:

[Route("page/{page}/{cityfilter?}/{statefilter?}/{organizationfilter?}")]
public IEnumerable<Contact> GetContact(int page, string cityfilter = null, string statefilter = null, string organizationfilter = null)
{
...
}

这里的问题是我希望每个参数都是可选的,所以我想发出一个请求,其中包含一个 cityfilter、一个 statefilter、一个 organization 过滤器,其中两个或三个,然后由这个函数处理和路由,但我不知道如何构建 URI,例如,这个路由只适用于 statefilter。

我如何在 WebAPI 中做到这一点?例如,我应该如何从 Jquery Ajax 调用中调用资源地址?

谢谢。

最佳答案

由于参数是简单类型(字符串),它们可以从路由数据(URL 路径)或查询字符串中绑定(bind)。因此,您可以将可选参数移至查询字符串,并让您的路由仅匹配 page 参数。

[Route("page/{page}")]

这是一个 URL 示例,您可以使用它从浏览器或 AJAX 调用中调用此操作:

www.yourapidomain.com/page/1?cityfilter=aCityFilterString&statefilter=aStateFilterString&organizationfilter=anOrganizationFilter

您当然可以省略任何可选参数或更改它们的顺序。

操作方法签名可以保留在您的示例中。

更多信息,您可以查看parameter binding ASP.NET Web API .

关于c# - WebAPI 路由到具有多个可选参数的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26231961/

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