asp.net-mvc - PagedList MVC 在发布后保持在同一页面上
问题描述
我有一个视图,其中侧面菜单(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>
再次感谢您提前提供的帮助。我很感激。
解决方案
我发现 PageNumber 属性是页码的值(是的,我知道是吧?)。因此,我创建@{ Session["page"] = Model.PageNumber; }
并传递给控制器。问题解决了。我希望这可以在未来对其他人有所帮助。
推荐阅读
- c++ - 使用 C++ mingw 编译器安装 unix 终端的简单方法是什么?
- laravel - Laravel Wherehas 与匹配不同值的 2 条记录的关系
- javascript - Subcollection in Firestore
- python-3.x - wxPython - 如何用两个嵌入面板创建一个框架?
- javascript - How can I repeatedly toggle a CSS animation class without a second click?
- scala - Getting the first item for a tuple for each row in a list in Scala
- python - How to split an array structure to csv in PysPark
- python - Import CSV-file on AWS S3 from Power BI with Python script: Importing the numpy C-extensions failed
- c++ - Opus, can't encode / decode all data
- javascript - Is it possible to combine web components built with different versions of stencil on the same page?