我想为我的项目创建一个包含列表的所有页面的通用分页组件。
我曾经使用过老式的网络表单,但我不确定在 asp.net mvc 核心中使用最佳实践。
我已经阅读了 Microsoft 提供的很棒的文档:https ://docs.microsoft.com/en-us/aspnet/core/data/ef-mvc/sort-filter-page#add-paging-functionality-to-the -students-index-page
我已将 PaginatedList 类放入我的项目中。
一切都很好。
但我想将用于分页的 html 内容放在部分视图中(以分解 html 代码):
@model PaginatedList<T>
@{
var prevDisabled = !Model.HasPreviousPage ? "disabled" : "";
var nextDisabled = !Model.HasNextPage ? "disabled" : "";
}
<a asp-action="Index"
asp-route-param1="@ViewData["param1"]"
asp-route-page="@(Model.PageIndex - 1)"
class="btn btn-default @prevDisabled">
Previous
</a>
<a asp-action="Index"
asp-route-param1="@ViewData["param1"]"
asp-route-page="@(Model.PageIndex + 1)"
class="btn btn-default @nextDisabled">
Next
</a>
然后,我想将此行放在每个列表页面的底部:
@Html.Partial("~/Views/Shared/_pagination.cshtml", Model)
我有两个问题:
在我的部分视图的第一行,我不知道应该放置哪种数据类型。它可能是 PaginatedList、PaginatedList 或其他任何东西。我不知道说“模型是分页列表,其中 T 可以是我项目的任何实体”的好语法。我试图放置对象而不是 T,但它不起作用。
如您所见,prev/next 链接包含其他参数(param1)。该参数可以是过滤器。但是这个过滤器不一样。有没有办法对标签说:“复制您可以看到的每个 GET 参数及其当前值”?
谢谢