目前我正在使用从这里检索到的 MvcPaging nuget 包:https ://github.com/martijnboland/MvcPaging
我的问题是,当我使用 @Html.Pager 帮助器时,而不是替换我的元素。它在新选项卡中打开局部视图。
我的目标是通过 Ajax 更新我的 QuickLinks 部分,而无需刷新整个页面。
这是我的控制器:
private CasuallyProDb db = new CasuallyProDb();
private const int DefaultPageSize = 7;
//
// GET: /Home/
public ActionResult Index()
{
int currentPageIndex = 0;
var news = db.PostedNews.OrderBy(a=>a.NewsId).ToPagedList(currentPageIndex, DefaultPageSize);
return View(news);
}
public ActionResult AjaxPage(int? page)
{
int currentPageIndex = page.HasValue ? page.Value - 1 : 0;
var news = db.PostedNews.OrderBy(a => a.NewsId).ToPagedList(currentPageIndex, DefaultPageSize);
return PartialView("_QuickLinks", news);
}
这是呈现部分视图的索引视图:
@model IPagedList<CasuallyPro.Models.News>
@using MvcPaging
<div id="quickLinksWrapper" class="float-right">
@Html.Partial("_QuickLinks", Model)
</div>
这是我的 _QuickLinks.cshtml 部分视图:
@model IPagedList<CasuallyPro.Models.News>
@using MvcPaging
<div id="quickLinksDisplay">
<ul>
@foreach (var news in Model)
{
<li>
<img alt="" src="@Html.DisplayFor(modelItem => news.CategoryIcon)"/>
<div class="quickLinksTitle">@Html.DisplayFor(modelItem => news.Title)<br/>
<span class="quickLinksDetails">
<span class="quickLinksUsername"> Posted by @Html.DisplayFor(modelItem => news.PostedUserName)</span>
<span class="quickLinksDate"> on @Html.DisplayFor(modelItem => news.PostedDate)</span>
</span>
</div>
</li>
}
</ul>
<div id="quickLinksPagedList">
@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount, new AjaxOptions
{
UpdateTargetId = "quickLinksWrapper"
}).Options(o => o.Action("AjaxPage"))
</div>
我正在查看他们提供的示例项目,看起来应该这样做,但不幸的是它无法正常工作。我在我的 _Layout.cshtml 的 head 部分引用了用于不显眼的 ajax 的脚本:
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
任何指导将不胜感激。