.Net Core 中的 PagedList.Core.Mvc PagedListPager Html 扩展不存在

2024-01-02

似乎是PagedList.Core不包含 Html helper 的扩展方法,所以我无法使用下面的代码:

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

我能够在以前版本的MVC中成功实现分页,但在ASP.Net Core中不起作用。下面我附上了 IL Dasm 参考资料。我是否遗漏了什么,或者有其他方法来实现它吗?

页面列表.Mvc:

PagedList.Core.Mvc:


要在 .Net Core 3.0 中使用 PagedList,我们将使用https://github.com/dncuug/X.PagedList https://github.com/dncuug/X.PagedList

打开 NuGet 包管理器安装X.PagedList.Mvc.Core

_ViewImports.cshtml

@using X.PagedList.Mvc.Core;
@using X.PagedList;
@using X.PagedList.Mvc.Common

BrandController.cs

public ActionResult Index(int? page)
{
   var pageNumber = page ?? 1;
   var pageSize = 10; //Show 10 rows every time
   var brands = this._UoW.BrandsRepository.GetAll().ToPagedList(pageNumber,pageSize);
   return View(brands);
}

索引.cshtml

Change

@model IEnumerable<Stock.Data.Models.Brands>

to

@model IPagedList<Stock.Data.Models.Brands>

改变每一个

@Html.DisplayNameFor(model => model.BrandName)

To

@Html.DisplayNameFor(model => model.First().BrandName)

在 html 表格的末尾添加分页编号,例如

<div class="pull-right">
                @Html.PagedListPager((IPagedList)Model, page => Url.Action("Index",
                   new
                        {
                            page
                 }),
                 new PagedListRenderOptionsBase
                 {
                     LiElementClasses = new string[] { "page-item" },
                     PageClasses = new string[] { "page-link" },
                     Display = PagedListDisplayMode.IfNeeded

                      })
            </div>

如果您进行搜索或使用其他查询字符串,您必须执行类似的操作:

BrandController.cs

public ActionResult Index(string search,int? page)
{
   var pageNumber = page ?? 1;
   var pageSize = 10; //Show 10 rows every time
   var brands = this._UoW.BrandsRepository.GetAll().Where(b => 
                b.BrandName.Contains(search) ||
                search == null).ToPagedList(pageNumber, pageSize);
            return View(brands);
}

索引.cshtml在 html 表格的末尾添加分页编号,例如

            <div class="pull-right">
                @Html.PagedListPager((IPagedList)Model, page => Url.Action("Index",
                   new
                        {
                            page,
                   search = Context.Request.Query["search"]
                 }),
                 new PagedListRenderOptionsBase
                 {
                     LiElementClasses = new string[] { "page-item" },
                     PageClasses = new string[] { "page-link" },
                     Display = PagedListDisplayMode.IfNeeded

                      })
            </div>

为了获得最佳性能使用

.ToPagedList with IQueryable

所以你每次只会从数据库返回 10 行,而不是整行

Use

        public IQueryable<T> GetAll()
        {
            return this._DbSet;
        }

with

this._UoW.BrandsRepository.GetAll().ToPagedList(pageNumber,pageSize);

不使用.ToList()

this._UoW.BrandsRepository.GetAll().ToList().ToPagedList(pageNumber,pageSize);

不使用

        public IEnumerable<T> GetAll()
        {
            return this._DbSet;
        }

with

this._UoW.BrandsRepository.GetAll().ToPagedList(pageNumber,pageSize);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.Net Core 中的 PagedList.Core.Mvc PagedListPager Html 扩展不存在 的相关文章

随机推荐

  • Bootstrap 图像圆圈内阴影

    如何向引导 图像圆 添加内部阴影 jsfiddle http jsfiddle net 52VtD 1923 这不行 box shad box shadow 0 10px 20px 777 inset 0 0 200px 000 inset
  • 使用 API 在 OneDrive 上创建文件夹

    我尝试通过 API 在 OneDrive 上创建新文件夹 但出现异常 致命错误 未捕获的异常 League OAuth2 Client Provider Exception IdentityProviderException 消息为 必须提
  • “阻塞系统调用”是什么意思?

    阻塞系统调用 是什么意思 在我的操作系统课程中 我们正在学习多线程编程 当我在教科书中读到 当一个线程进行阻塞系统调用时 它可以允许另一个线程运行 时 我不确定这是什么意思 阻塞系统调用是必须等待操作完成的调用 read 将是一个很好的例子
  • 在 Java 中处理多个构造函数的最佳方法

    我一直想知道在 Java 中处理多个构造函数的最佳 即最干净 最安全 最有效 方法是什么 特别是当在一个或多个构造函数中未指定所有字段时 public class Book private String title private Stri
  • 弱链接的实际应用有哪些?

    使用特殊的编译器命令可以声明符号weak 根据维基百科 https en wikipedia org wiki Weak symbol 弱符号是目标文件或动态库中的符号定义 可能会被其他符号定义覆盖 什么场景或者什么应用需要弱符号 什么是典
  • 是否可以在 SASS mixin 中测试当前元素类型?

    我有一个 mixin 可以绘制这样的按钮 mixin button border 1px solid orange background orange padding 0 height 27px text transform upperca
  • Angular 2:让组件自动检测服务中的变量变化

    我目前面临的问题是 从功能上讲 当用户登录时 我的导航栏不会自动更新以向他们显示正确的链接 仅当我手动刷新不需要的页面时 它才会更新 因为这是单页面应用程序 我可以正常处理注销 因为注销按钮和功能位于控制导航栏的组件内 但是 登录是通过身份
  • C++ 中 _tmain() 和 main() 有什么区别?

    如果我使用以下 main 方法运行我的 C 应用程序 则一切正常 int main int argc char argv cout lt lt There are lt lt argc lt lt arguments lt lt endl
  • 分而治之——为什么它有效?

    我知道像归并排序和快速排序这样的算法使用分而治之的范式 但我想知道为什么它可以降低时间复杂度 为什么 分而治之 算法通常比非分而治之算法效果更好 分而治之的算法工作得更快 因为它们最终完成的工作更少 考虑二分搜索的经典分而治之算法 而不是看
  • 不需要播种 java.security.SecureRandom 吗?

    我使用的是 Java 1 7 如下面的代码所示 在 Ubuntu 中使用 Oracle 的 Java 7 编译器编译 java security SecureRandom似乎是不必要的 因为代码为两个伪随机序列的起始值生成两个不同的 Big
  • 我可以使用 Spring Data JPA 为 MappedSuperClass 的所有子级使用通用存储库吗?

    给定以下类结构 MappedSuperclass Inheritance strategy InheritanceType TABLE PER CLASS public abstract class Animal Entity public
  • Python 中正整数所需的最小位长度

    1 0b1 gt 1 5 0b101 gt 3 10 0b1010 gt 4 100 0b1100100 gt 7 1000 0b1111101000 gt 10 如何获取整数的位长度 即在 Python 中表示正整数所需的位数 在 pyt
  • 如何在python中转储不带引号的json

    这是我转储文件的方法 with open es hosts json w as fp json dump join host list keys fp 结果是 a b c 我想 a b c Thanks 在进行字符串替换之前 您可能需要st
  • 将 Pentaho Reporting Web 前端与自定义 Java/JSF 应用程序集成

    我有以下情况 带有数据的 OTLP 数据库架构 数据库过程将数据泵送到具有定义的维度和事实表的非规范化星型模式中 目标是构建 Web 应用程序 它可以对那些定义的数据结构进行汇总和深入分析 我可以构建自定义 Web 界面 但我更喜欢使用现有
  • 逻辑应用程序读取存储在变量中的json属性

    我在逻辑应用程序变量中有这个 json 我想要这个 JSON 的 id 属性并进一步使用 如何获取这个id属性值 我的 JSON 是 id 1 name John bright username Lily email email prote
  • 如何在ajax响应返回的脚本标签内执行javascript

    我正在发送一个 jquery get 请求 如下所示 get this attr href this serialize null script 我期望收到的响应将包含在脚本标签中 我知道浏览器不会执行响应 除非它返回时没有脚本标记 通常我
  • 元素 中“Project”属性的值“”无效。 vs2012

    我在尝试在 Visual Studio 2012 中加载某些项目时收到以下错误 G path project csproj error The value of the Project attribute in element
  • 如何在 VS Code 上设置 AngularDart5

    我已经广泛搜索了有关如何在 Visual Studio Code 上有效设置 Angular Dart 5 的文档 但到目前为止没有发现任何结论 我已经搜索过的地方 Youtube 堆栈溢出 https webdev dartlang or
  • Maven 与查询 DSL 集成

    我正在尝试将 Maven 中的现有项目与查询 dsl 集成 我添加了如下依赖项
  • .Net Core 中的 PagedList.Core.Mvc PagedListPager Html 扩展不存在

    似乎是PagedList Core不包含 Html helper 的扩展方法 所以我无法使用下面的代码 Html PagedListPager Model page gt Url Action Index new page PagedLis