Потери подкачки при фильтрации на ОТ и до настоящего времени MVC
Я делаю проект, и при поиске на основе поиска от и до он фильтрует, но при выборе второй страницы после подачи подкачки фильтр, который дает потери и показывает все элементы из БД.
контроллер
public async Task<ActionResult> Index(string sortOrder, string CurrentSort, string currentFilter, string searchString, int? page, string FromDateString, string ToDateString) { int pageSize = 10; int pageIndex = 1; pageIndex = page.HasValue ? Convert.ToInt32(page) : 1; ViewBag.CurrentSort = sortOrder; sortOrder = String.IsNullOrEmpty(sortOrder) ? "DateTime" : sortOrder; IPagedList<PhoneNo> Phone= null; var List = db.PhoneNos.ToList(); if (!String.IsNullOrEmpty(searchString)) { List = List .Where(s => s.PhoneNum.ToString().Contains(searchString)).ToList(); } if (!String.IsNullOrEmpty(FromDateString) && String.IsNullOrEmpty(ToDateString)) { List = List .Where(s => s.DateTime >= FromDateString.ToDateFromString()).ToList(); } if (!String.IsNullOrEmpty(ToDateString) && String.IsNullOrEmpty(FromDateString)) { List = List .Where(s => s.DateTime <= ToDateString.ToDateFromString()).ToList(); } if (!String.IsNullOrEmpty(ToDateString) && !String.IsNullOrEmpty(FromDateString)) { List = List .Where(s => s.DateTime >= FromDateString.ToDateFromString() && s.DateTime <= ToDateString.ToDateFromString()).ToList(); } switch (sortOrder) { case "DateTime": if (sortOrder.Equals(CurrentSort)) Phone= List .OrderByDescending(m => m.DateTime).ToPagedList(pageIndex, pageSize); else Phone= List .OrderBy(m => m.DateTime).ToPagedList(pageIndex, pageSize); break; case "Default": Phone= List .OrderBy(m => m.DateTime).ToPagedList(pageIndex, pageSize); break; } return View(Phone); }
это мой cntroller и поиск на основе fromdatestring и todatestring
на странице просмотра сеанс подкачки
<div style="text-align:left;"> Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount @Html.PagedListPager(Model, page => Url.Action("Index", new { page, currentFilter = ViewBag.CurrentFilter, sortOrder = ViewBag.sortOrder })) </div>
это моя страница просмотра, и моя проблема заключается в потерях фильтрации при выборе второй страницы в подкачке . как я могу исправить свою проблему ?? кто-нибудь может помочь мне найти решение??
Что я уже пробовал:
Я искал и нашел только один поиск, но не получил поиск по двум разным строкам
Bohdan Stupak
на самом деле вы основываете свой фильтр на многих параметрах, которые вы не предоставляете в @Html.PagedListPager. Так ли это должно быть?
ammu11
На самом деле я не знаю, что дать в @Html.PagedListPager но при задании параметра и без такого длинного параметра фильтрация работает неправильно
В чем может быть проблема ??
Bohdan Stupak
Я имею в виду, что вы предоставляете в public async Task<actionresult> индексировать гораздо больше параметров, чем в @Html.PagedListPager. Насколько я понимаю, список параметров должен быть таким же, как только page = & gt; Url. Action будет получать запрос на ваш сервер, который будет обрабатываться в публичной асинхронной задаче & lt;actionresult> Index method