PagedList MVC остается на той же странице после публикации - PullRequest
0 голосов
/ 31 января 2019

У меня есть вид, где боковое меню (где PagedList заполняет данные без проблем), которые также являются ссылками для отображения другого набора данных в том же виде.После щелчка по этим ссылкам я хочу, чтобы данные в этом поле были изменены, и чтобы боковое меню (PagedList) оставалось на той же странице.Я могу передать значение id моему контроллеру и отобразить данные, но значение «номер страницы» не передается.Любые идеи о том, как этого добиться.

Вот как выглядит мой код

  [HttpPost]
        public ActionResult Index(string id, int? page)
        {
            try
            {
                id = Request.Form["newsLinkButton"];                
                ViewBag.Id = id;
                using (myEntities db = new myEntities())
                {                    
                    var getNews = db.News.Where(x => x.Show == "Yes").OrderByDescending(x => x.Date).ToList();
                    return View(getNews.ToPagedList(page ?? 1, 5));
                }
            }
            catch (Exception ex)
            {                    
                return View(ex);
            }
        }  

<div class="sidebar blue-sidebar news-sidebar no-mobile">
                    <h2>Recent News</h2>
                    @using (Html.BeginForm("Index", "News", FormMethod.Post))
                    {
                        <form id="newsForm" name="newsForm">
                            <ul class="white-text">
                                @foreach (var item in Model.OrderByDescending(x => x.Date))
                                {
                                    <li>
                                        <button id="newsLinkButton" name="newsLinkButton" type="submit" value="@item.Id">@item.Title</button>
                                    </li>
                                    }
                            </ul>
                        </form>
                        <div class="center-block">  
                                @Html.PagedListPager(Model, page => Url.Action("Index", new { page }),
                                         new PagedListRenderOptions()
                                         {

                                             DisplayLinkToFirstPage = PagedListDisplayMode.Always,
                                             DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
                                             DisplayLinkToLastPage = PagedListDisplayMode.Always,
                                             DisplayLinkToNextPage = PagedListDisplayMode.Always,
                                             MaximumPageNumbersToDisplay = 3, // number of pages in line
                                             DisplayEllipsesWhenNotShowingAllPageNumbers = false
                                         })

                        </div>
                    }
                </div>    

Еще раз спасибо за вашу помощь заранее.Я ценю.

1 Ответ

0 голосов
/ 01 февраля 2019

Я обнаружил, что свойство PageNumber - это то, что содержит значение для номера страницы (да, я знаю, да?).Поэтому я создал @{ Session["page"] = Model.PageNumber; } и перешел к контроллеру.Задача решена.Я надеюсь, что это может помочь кому-то еще в будущем.

...