Mvc5 разбиение на страницы в представлении но вызов другого действия которое заполняет представление
У меня есть моя пагинация с представлением и действием с правильным и рабочим именем представления, теперь у меня есть еще одно действие, которое получает пользовательский набор данных, который использует ту же модель в представлении, только с разными результатами. Как я могу заставить свою пагинацию работать с этим отдельным действием? В отдельном действии я первоначально вызвал View(“viewname”, Model), чтобы открыть свое представление с этими данными.
public async Task<ActionResult> UserTimeSheets(string id, int? page) { var userTimeSheets = await (from times in context.TimeSheetMaster where times.UserId == id select new TimeSheetMasterModel() { TimeSheetMasterId = times.TimeSheetMasterId, UserId = times.UserId.ToString(), IdShortened = times.UserId.Substring(0,10) }).ToListAsync(); int pageSize = 3; int pageNumber = (page ?? 1); TempData["PanelHeader"] = "Your TimeSheets"; return View(userTimeSheets.ToPagedList(pageNumber, pageSize)); } // Here is the action that loads only the first page of data public async Task<ActionResult> UserApproveTimes(string userid, int? page) { var approved = await (from m in context.TimeSheetMaster where m.TimeSheetStatus == 2 && m.UserId == userid select new TimeSheetMasterModel() { TimeSheetMasterId = m.TimeSheetMasterId, IdShortened = m.UserId.Substring(0,8), TotalHours = m.TotalHours, Comment = m.Comment, }).ToListAsync(); int pageSize = 3; int pageNumber = (page ?? 1); TempData["PanelHeader"] = "Your Approved TimeSheets"; return View("UserTimeSheets", approved.ToPagedList(pageNumber, pageSize)); } // Here is the view parts of it @model PagedList.IPagedList<MVC_TimeSh.Models.TimeSheetMasterModel> @using PagedList.Mvc; <link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" /> @*if (TempData["PageHeader"] == "Your Approved TimeSheets") { @Html.PagedListPager(Model, page => Url.Action("UserApproveTimes", new { page })) } else { @Html.PagedListPager(Model, page => Url.Action("UserTimeSheets", new { page })) }*@ @Html.PagedListPager(Model, page => Url.Action("UserTimeSheets", new { page = page}), PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "GET", UpdateTargetId = "table" }))
Что я уже пробовал:
Я могу заставить разбиение на страницы показывать правильное количество страниц и правильно загружать первую страницу, но как только я нажимаю на следующую страницу, она не показывает никаких данных в представлении. Я использую PagedList для своей пагинации. Вот мой код с работающей разбиением на страницы и действием, которое показывает первую страницу данных. Я попробовал использовать ajax, думая, что, возможно, это сработает, потому что страница не нуждается в обновлении, но она делает то же самое, что и до того, как 2-я страница опустела.
Christian Graus
Вы уже прошли через код? Похоже, вы неправильно отправляете номера страниц?
TheBigBearNow
Первая страница работает правильно.
Страница с тем же именем действия, что и представление, работает на всех ссылках pageination
Единственное что не работает это действие которое вызывает представление представление и загружает его с пользовательским набором данных когда я нажимаю ссылку разбиения на страницы для этого 2 я страница пуста