用于分页的Web API请求URL

时间:2017-08-03 22:01:29

标签: c# asp.net-web-api

我们正在尝试围绕API构建分页模型,该模型将返回当前页面网址,上一页网址,下一页网址。

在我们的Controller方法中,我们几乎没有明确定义的查询参数,用户可以自己使用一些Query参数,这些参数将在控制器中使用

处理
         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 }) : ""

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

1 个答案:

答案 0 :(得分:0)

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

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