2017-08-03 9 views
0

私たちは現在のページURL、前のページのURL、次のページのURLを返すAPIの周りにページネーションモデルを構築しようとしていました。当社のコントローラメソッドでWeb APIページリクエストのURL

、我々はいくつかの井戸がクエリパラメータを定義し、ユーザーは、現在のページのURLを準備している間

  HttpUtility.ParseQueryString(Request.RequestUri.Query) 

を使用してコントローラに処理されます、彼自身にいくつかのクエリパラメータすることができ、前のページのURL持っています、次のページのURL制限オフセットを変更して、ユーザーが渡したすべてのクエリパラメータを残ります。

ユーザーが渡したすべてのクエリ文字列がわからないため、URLを動的に構築する方法はありません。

我々は現在、我々は、ユーザが合格している可能性のある他の動的なクエリ文字列パラメータを渡すことができない。この

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

ようUrlHelper使用しています。その周りには道がありますか?

答えて

0

1つのクエリパラメータのみを置き換えるout of the boxメソッドはありません。

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

関連する問題