PagedList 的帮助程序 ASP.NET MVC 中支持不显眼的 Ajax



我目前正在使用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^="/"] 部分确保仅修改点击链接。如果不使用它,灰显的"上一个"链接将可单击。

最新更新