Строка запроса MVC PagedList
Я использую pagedList.mvc, чтобы сделать некоторые нумерации страниц. Фильтрация запросов работает нормально, однако при разбивке на вторую страницу строка запроса, похоже, не работает. Будем признательны любому совету.
Приведенные здесь примеры не очень помогли, потому что я выполняю несколько фильтров и использую модель в форме, а не ViewBag.
КОНТРОЛЛЕР
[ValidateInput(false)]
public ActionResult People(int? page, StaffProfilesVM model)
{
var profiles = this.Context.StaffProfileInternal.GetAll();
if (model == null)
{
var VM = new StaffProfilesVM();
page = 1;
}
else
{
List<string> interests = BindInterests(model.researchInterests);
List<ProfileAffiliation> affiliations = BindAffiliations(model.affiliations);
//apply filters
profiles = ApplyFilters(model, interests, affiliations, profiles);
}
ViewBag.CurrentFilter = HttpContext.Request.QueryString;
int pageSize = 6;
int pageNumber = (page ?? 1);
model.StaffProfiles = profiles.ToList().ToPagedList(pageNumber, pageSize);
return View(model);
}
ПОСМОТРЕТЬ
@model PagedList.IPagedList<StaffProfileInternal>
@using PagedList.Mvc;
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
@Html.DisplayFor(m => m)
<div class="col-md-12 col-lg-12" align="center">
<div aria-label="Page navigation">
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("People",
new { page, currentFilter = ViewBag.CurrentFilter }))
</div>
</div>
Фильтр работает правильно и нормально возвращает первую страницу. При разбиении на страницы на второй / другие страницы строка запроса применяется к currentFilter, но дополнительные символы в строке запроса препятствуют выполнению запроса. Как я могу справиться с этим?
РАБОТАЕТ Главная / Люди?PersonId=&Classification=Unknown&affiliations=1
НЕ РАБОТАЕТ Дом / Люди? Страница =2¤tFilter=PersonId%3D%26Классификация%3DUnknown%26affiliations%3D1
Спасибо.