【问题标题】:PagedList MVC stay on the same page after a postPagedList MVC 在发布后保持在同一页面上
【发布时间】:2019-01-31 16:04:11
【问题描述】:

我有一个视图,其中侧面菜单(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>    

再次感谢您提前提供的帮助。我很感激。

【问题讨论】:

  • 我认为你这里有几个错误,比如page =&gt; Url.Action("Index", new { page })只传递了一个参数。您能否提及在Index 操作中收到的idpage 参数值?
  • @TetsuyaYamamoto,谢谢你的回复,id其实是在这里设置的"id = Request.Form["newsLinkBut​​ton"];"我有点想对页面做同样的事情。 PagedList 中的 page 值从何而来?你碰巧知道吗?
  • @TetsuyaYamamoto,我最终自己找到了那个属性。那是页码。然后我创建了一个会话变量来保存该值并传递给控制器​​。它现在按预期工作。

标签: asp.net-mvc pagedlist


【解决方案1】:

我发现 PageNumber 属性是页码的值(是的,我知道是吧?)。因此,我创建了@{ Session["page"] = Model.PageNumber; } 并传递给控制器​​。问题解决了。我希望这可以在将来对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    相关资源
    最近更新 更多