Как реализовать пейджинг в ASP.NET MVC?

В настоящее время я использую стратегию, найденную во многих сообщениях в блоге. В основном, URL-адрес содержит номер страницы (например,/Users/List/5 даст вам пользователей на странице 5 вашего постраничного списка пользователей). Однако я не сталкиваюсь с ситуацией, когда одна страница должна перечислить два отдельных вычисленных списка. Как мне это сделать с помощью ASP.NET MVC? Я просто предоставляю два параметра url (например,/Users/List? Page1 = 1 & page2 = 2)? Есть ли лучший способ, используя частичные представления?

Ответы

Ответ 1

Игнорируя маршруты в течение минуты, вы просто сохраните состояние двух разных страниц в URL как параметры запроса.

mysite.com/foo?list1page=2&list2page=8

Затем вы создаете данные/пейджеры соответственно. Ссылки на пейджер будут только обновлять URL.

Вы можете создавать объявления с помощью маршрутов, чтобы создавать более дружественные URL-адреса, но я думаю, что параметры querystring вполне приемлемы здесь.

Ответ 2

Я нашел ASP.NET MvcPager на официальном сайте asp.net.

Ответ 3

Если вы используете параметры запроса, ссылки страниц в каждом списке должны знать друг о друге, чтобы передавать оба параметра.

Если два списка независимы друг от друга, вы можете их обновлять индивидуально, используя jquery и ajax. Просто разместите каждый список в своем собственном div как частичный вид.

<div id="list1"><%= Html.RenderPartial ("ListA") %></div>
<div id="list2"><%= Html.RenderPartial ("ListB") %></div>

Поиск ajaxSubmit из плагина jQuery Form для простого способа обновления списков.

Ответ 4

PagedList.Mvc - очень простой в использовании плагин, и он доступен также через Nuget.