私はリソースコレクションを持つOkNegotiatedContentResult<T>
を返すApiControllerを持っています。当然ながら、ページ付けされたコレクションを返すメソッドが増えます。IHttpActionResultを返すための余分なメソッドを提供する方法?
これらすべての行動の結果でcontent
はおおよそ次のようになります。
- 現在の項目
- と
Data
プロパティなど総ページ数と総アイテム - としてページングメタデータプロパティ
PagingMeta
最初の/前/次/最後のページへのリンクを含むPagingLinks
のプロパティ
私のバックエンドrカスタムのPagedList<T>
オブジェクトがあり、上記のプロパティを含む別のPagedListResponse<T>
があります。それは、一方から他方への単純な変換です。
今、ウェブAPIで、ApiController
のような、IHttpActionResult
を返すための便利な方法をいくつか提供しています。私はそれと同じようにするために期待していた
Ok<T>(T value)
Content<T>(HttpStatusCode statusCode, T value)
コントローラーが簡単にページされた結果を返すのは簡単です。私は次のシグネチャで、それを提供して拡張メソッドを持っている瞬間のために
:
public static OkNegotiatedContentResult<PagedListResult<T>> OkPaged<T>(this ApiController controller, /* other parameters */)
「醜い」はあなただけthis
キーワードを含むことにより、拡張メソッドを呼び出すことができるということです。
return this.OkPaged(myResult);
私が見ることができる唯一の他の選択肢は、基本コントローラクラスを実装することですが、一般的には後で道に迷う傾向があるため、このような継承構造を避けようとします。
ASP.NETは、私がやりたいことをするために拡張ポイントの点で何を提供していますか?