このコードを部分ビューにして、グリッドにアルファページングを追加しようとしています:
<div class="t-pager-wrapper" style="border-bottom:0">
<div class="t-pager t-reset">
@foreach (var letter in CollectionUtil.Alphabet){
@Html.ActionLink(letter, "Index", new { Equipment_filter = "Equipment.Name~startswith~'" + letter + "'" }, new { @class = "t-link" })
}
@Html.ActionLink("All", "Index")
</div>
</div>
クエリ文字列のパラメーターとして使用する「Equipment」という名前を渡すにはどうすればよいですか? 私のすべてのグリッドにはデータの独自の名前があるため、ページング フィルターが機能するためには、Equipment_filter、Color_filter、Cars_filter などの各ページで異なります。
したがって、URL の例は次のようになります。
http://www.mydomain.com/Equipment?Equipment-filter=Equipment.Name~startswith~'B'
http://www.mydomain.com/Color?Color-filter=Color.Name~startswith~'C'
そのため、パーシャルに渡すパラメーターは、フィルター プレフィックスの "Equipment" と、オブジェクト プロパティを比較するためのパスの "Equipment.Name" に渡す必要があります。
編集:
代わりに、リンクの href パラメーター内で Url.Action を使用するだけでこれを行いました。
<a href="@Url.Action("index")?Equipment-filter=Equipment.Name~startswith~'@letter'">@letter</a>
すべてが文字列であるため、その時点で「Equipment」と「Equipment.Name」を指定するのは簡単です。誰かが ActionLink を使用してソリューションを投稿したい場合は、それを回答としてマークします。