You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core 6 MVC迁移X.PagedList.Mvc.Core遇命名空间缺失问题

解决方案:X.PagedList.Mvc.Core 8.x替代旧版Common命名空间功能

1. 替换PagedListRenderOptions

8.x版本中,PagedListRenderOptions已迁移至X.PagedList.Mvc.Core命名空间,无需再引用Common。直接使用该命名空间下的类即可,常用配置项与旧版兼容,示例代码如下:

@using X.PagedList.Mvc.Core;

@{
    var options = new PagedListRenderOptions
    {
        DisplayLinkToFirstPage = PagedListDisplayMode.Always,
        DisplayLinkToLastPage = PagedListDisplayMode.Always,
        DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
        DisplayLinkToNextPage = PagedListDisplayMode.Always,
        // 按需添加其他配置项
    };
}

@Html.PagedListPager(Model, page => Url.Action("Index", new { page }), options)

2. 替换UpdateTargetId(AJAX分页支持)

8.x版本取消了UpdateTargetId属性,需结合jQuery手动实现局部刷新:

  • 确保视图引入jQuery
  • 给分页组件添加自定义属性标记目标容器
  • 拦截分页点击事件,发起AJAX请求并更新容器内容

示例代码:

<!-- 待更新的目标容器 -->
<div id="paginationContent">
    @Html.PagedListPager(Model, page => Url.Action("Index", new { page }), new PagedListRenderOptions
    {
        LiElementClasses = new[] { "page-item" },
        PageClasses = new[] { "page-link" },
        // 添加自定义属性用于捕获目标容器
        HtmlAttributes = new Dictionary<string, object>
        {
            { "data-target", "#paginationContent" }
        }
    })
</div>

<script src="~/lib/jquery/dist/jquery.min.js"></script>
<script>
    $(document).on("click", ".page-link", function (e) {
        e.preventDefault();
        var target = $(this).closest("ul").data("target");
        var requestUrl = $(this).attr("href");
        
        $.get(requestUrl, function (response) {
            $(target).html($(response).find(target).html());
        });
    });
</script>

3. 额外说明

  • 控制器中可通过Request.Headers["X-Requested-With"] == "XMLHttpRequest"判断是否为AJAX请求,按需返回部分视图或完整视图
  • 若需更复杂的分页渲染逻辑,可基于X.PagedList.Mvc.Core的扩展方法自定义实现

内容的提问来源于stack exchange,提问作者Diego

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:45:43