TheBigBearNow Ответов: 0

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 я страница пуста

0 Ответов