我目前正在使用PagedList(https://github.com/TroyGoode/PagedList/)在 ASP.NET MVC应用程序中管理我的分页。
从今天开始,我已经开始将应用程序的某些部分转换为使用 AJAX,ASP.NET MVC 使这变得非常容易。
然而,我遇到的第一个问题是PagedList.MVC助手@Html.PagedListPager与不显眼的AJAX不兼容。
我真正需要做的就是向分页链接添加一些属性(见下文),其余的将自动处理。但是,PagedListPager 不提供任何执行此操作的方法。
data-ajax="true" data-ajax-mode="replace" data-ajax-update="#SearchResults"
有没有人遇到过这个问题并找到了一个优雅的解决方案?
我添加了对不显眼的AJAX的支持:
https://github.com/TroyGoode/PagedList/issues/26#issuecomment-6471793
这可能是最优雅的解决方案。
@Html.PagedListPager((IPagedList)Model.Articles, page => Url.Action("Index", new { s = Model.SearchString, page = page }))
<script>
var pages = $('#pages a[href^="/"]');
pages.attr('data-ajax', 'true')
.attr('data-ajax-mode', 'replace')
.attr('data-ajax-update', '#SearchResults')
.attr('data-ajax-method', 'post');
</script>
快速jQuery黑客为所有链接添加必要的属性,以便它们被不显眼的ajax模块拾取。
[href^="/"] 部分确保仅修改点击链接。如果不使用它,灰显的"上一个"链接将可单击。