検索ページを作成する必要があるとしましょう。そのページには次のものがあります。
- 多くの検索パラメーター (param1、param2、...、paramN) を持つ複雑な検索フィルター
- 結果項目一覧
- ポケットベル
- レイアウト スイッチ リンク (リストまたはテーブル ビュー)
検索パラメーターの現在の値 (url から) に関する情報と、url から直接取得されていないいくつかの「推測された」パラメーター (たとえば、ユーザーが地域を指定していない場合は推測できます) を使用して、ビュー モデルをアクションからビューに渡します。彼のIPから)。
さて、ページャーの各リンクに対して、次のようなコードを書く必要があります
<a href="@Url.Action(null, new { page = n, param1, param2, ..., paramN, region })">...
レイアウト スイッチ リンクについては、似ているが異なるコードを記述する必要があります。
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.List, param1, param2, ..., paramN, region })">list</a>
<a href="@Url.Action(null, new { page = currentPage, mode = DisplayModes.Table, param1, param2, ..., paramN, region })">table</a>
私が気に入らないのは、大量のコードが漏洩して表示されたことです。維持するのもテストするのも難しい。
そのような複雑なページの URL を構築するのは、ビューまたはアクションの責任ですか?