用于分页的Web API请求URL

用于分页的Web API请求URL

问题描述:

我们试图围绕API构建分页模型,以返回当前页面URL,上一页URL,下一页URL。用于分页的Web API请求URL

在我们的控制方法中,我们很少有明确的查询参数和用户可以在他自己的一些查询参数将在控制器处理使用

  HttpUtility.ParseQueryString(Request.RequestUri.Query) 

在编制当前页面的URL,以前的页面URL ,我们将在下一页URL修改限制偏移量,并保留用户已经通过的所有查询参数。

是否有任何方式动态构建URL,因为我们可能不知道用户已经通过的所有查询字符串。

目前,我们正在使用UrlHelper这样

 var prevLink = offset > 0 ? urlHelper.Link(routeName, new {offset=(offset-limit)>=0? offset - limit:0,limit=limit }) : "" 

我们无法通过该用户可能已经通过其他动态查询字符串参数。有没有办法解决它。

没有开箱即用的方法只会替换一个查询参数。这给一试:

var qs = HttpUtility.ParseQueryString(Request.QueryString.ToString()); 
qs.Set("offset", newOffset); 

var uriBuilder = new UriBuilder(Request.RequestUri); 
uriBuilder.Query = qs.ToString(); 
var newUri = uriBuilder.Uri; 

的礼貌:Replace item in querystring

+0

我不得不做出一些调整TI它。但它给出了要做什么的基本想法。谢谢 – harish

+0

你也可以在你的问题中分享调整后的版本吗?如果有其他人需要它? – Sal

+0

调整主要与业务逻辑有关,而不是修改查询字符串的方式, – harish