[英]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.