У меня есть представление под названием Reorder.Это список, который в основном показывает все доступные материалы.Список настолько длинный, что нам пришлось реализовать разбиение на страницы, чтобы страница загружалась без тайм-аута.Это прекрасно работает.
У нас также есть фильтр (текстовое поле), в котором пользователь может ввести число и отфильтровать список, чтобы видеть только те запасы, которые имеют запас, равный или меньший, чем желаемое количество.Теоретически, это работает нормально с вышеупомянутым фильтром.
Проблема в том, что - когда пользователь выбирает выход за пределы первой страницы результатов, фильтр остается на месте, но номер запаса сбрасывается и все расходные материалы, независимо от количества запаса, которое начинает отображаться снова.
Я пробовал несколько разных способов, но не могу понять, куда добавить строку поиска в коде нумерации страниц, чтобы она переносилась на любую страницу, которую переходит пользовательк.
Вот мой код контроллера переупорядочения
public ActionResult Reorder(string searchString, int? page)
{
var supplies = db.ICS_Supplies.OrderByDescending(g => g.Supplies_ID).ToList();
int searchValue;
// If searchString is null (or not an int), then set our searchValue to int.MaxValue
if (!int.TryParse(searchString, out searchValue)) searchValue = int.MaxValue;
// var catalogs = supplies.Where(s => s.OnHand.HasValue && s.OnHand.Value <= searchValue);
var catalogs = supplies.Where(s => s.OnHand < searchValue);
var pageNumber = page ?? 1;
return View(catalogs.ToPagedList(pageNumber, 10));
}
Строка поиска передается из представления в контроллер и используется для возврата результатов, когда OnHand равно или меньше этого значения.Searcstring в конечном итоге преобразуется в searchvalue.
Должен ли я добавить searchvalue где-нибудь в этой строке?
var pageNumber = page ?? 1;
return View(catalogs.ToPagedList(pageNumber, 10));