Mvc5 нумерация страниц в представлении, но вызов другого действия, которое заполняет представление - PullRequest
0 голосов
/ 03 мая 2019

У меня есть нумерация страниц с представлением, и действие с именем представления корректно и работает. Теперь у меня есть другое действие, которое получает пользовательский набор данных, который использует одну и ту же модель в представлении только с разными результатами.Как я могу заставить мою нумерацию страниц работать с этим отдельным действием.В отдельном действии я первоначально назвал View («viewname», Model), чтобы открыть мое представление с этими данными.Я могу заставить нумерацию страниц отображать правильное количество страниц и правильно загружать первую страницу, но как только я нажимаю на следующую страницу, она не показывает никаких данных в представлении.Я использую PagedList для моей нумерации страниц.Вот мой код с работающей нумерацией страниц и действием, которое показывает первую страницу данных.Я попытался использовать ajax, думая, что, возможно, все будет работать, потому что страница не нуждается в обновлении, но она делает то же самое, что и до того, как 2-я страница пуста.

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"
                   }))
...