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

如何将MVC中@Html.PagedListPager转换为ul和li标签

将PagedListPager转换为ul/li分页结构

要把@Html.PagedListPager的输出改成你需要的ul/li格式,最直接的方式是自定义PagedList的显示模板,步骤如下:

  1. 在项目的Views/Shared文件夹下新建DisplayTemplates目录(如果没有的话)。
  2. 在该目录中创建名为_PagedList.cshtml的视图文件,写入以下代码:
@model PagedList.IPagedList
@using PagedList.Mvc;

<nav aria-label="分页导航">
    <ul class="pagination pagination-sm">
        <!-- 上一页按钮 -->
        @if (Model.HasPreviousPage)
        {
            <li class="page-item">
                <a class="page-link" href="@Url.Action("DisplayTTs", "TTCreator", new { page = Model.PageNumber - 1, SearchTT = ViewBag.searchTxt })" aria-label="上一页">
                    <span aria-hidden="true">&laquo;</span>
                </a>
            </li>
        }
        else
        {
            <li class="page-item disabled">
                <span class="page-link" aria-label="上一页">
                    <span aria-hidden="true">&laquo;</span>
                </span>
            </li>
        }

        <!-- 页码列表 -->
        @foreach (var pageNumber in Model.GetPageNumbers())
        {
            if (pageNumber == Model.PageNumber)
            {
                <li class="page-item active" aria-current="page">
                    <span class="page-link">@pageNumber</span>
                </li>
            }
            else
            {
                <li class="page-item">
                    <a class="page-link" href="@Url.Action("DisplayTTs", "TTCreator", new { page = pageNumber, SearchTT = ViewBag.searchTxt })">@pageNumber</a>
                </li>
            }
        }

        <!-- 下一页按钮 -->
        @if (Model.HasNextPage)
        {
            <li class="page-item">
                <a class="page-link" href="@Url.Action("DisplayTTs", "TTCreator", new { page = Model.PageNumber + 1, SearchTT = ViewBag.searchTxt })" aria-label="下一页">
                    <span aria-hidden="true">&raquo;</span>
                </a>
            </li>
        }
        else
        {
            <li class="page-item disabled">
                <span class="page-link" aria-label="下一页">
                    <span aria-hidden="true">&raquo;</span>
                </span>
            </li>
        }
    </ul>
</nav>
  1. 替换原来的分页调用,改成以下两种方式之一:
    • 直接使用DisplayFor渲染模板:
      @Html.DisplayFor(model => model, "_PagedList")
      
    • 或者在PagedListPager中指定模板:
      @Html.PagedListPager(Model, page => Url.Action("DisplayTTs", "TTCreator", new { page = page, SearchTT = ViewBag.searchTxt }), new PagedListRenderOptions { DisplayTemplate = "_PagedList" })
      

这个模板会根据你的分页模型生成符合要求的结构,包含激活状态的当前页码、禁用的首尾页按钮,以及带正确参数的跳转链接,样式类和你给出的示例完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:21:09