【问题标题】:Web API Request URL for paginations用于分页的 Web API 请求 URL
【发布时间】:2017-08-04 12:11:08
【问题描述】:

我们试图围绕 API 构建分页模型,该模型将返回当前页面 URL、上一页 URL、下一页 URL。

在我们的Controller方法中,我们有几个定义良好的查询参数,用户可以自己处理一些查询参数,这些参数将在控制器中使用

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

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

【问题讨论】:

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


    【解决方案1】:

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

    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

    【讨论】:

    • 我不得不对其进行一些调整。但它给出了关于要做什么的基本想法。谢谢
    • 你能在你的问题中分享调整后的版本吗?以防其他人需要它?
    • 调整主要与业务逻辑有关,而不是修改查询字符串的方式,
    猜你喜欢
    • 2017-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 2016-08-12
    • 2020-06-10
    相关资源
    最近更新 更多