繁体   English   中英

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

[英]WebAPI routing to a function with multiple optional parameters

我在WebAPI控制器中将以下函数标头声明为route:

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

这里的问题是我希望每个参数都是可选的,所以我想发出一个包含cityfilter,statefilter,organization filter,其中两个或三个的请求,然后进行处理并路由器通过此功能,但是我不知道如何构建URI,例如,该路由仅适用于状态过滤器。

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

谢谢。

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

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

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

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

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

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

有关更多信息,您可以查看参数绑定ASP.NET Web API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM