指定 PagedListPager 选项

Specifying PagedListPager options

我有以下用于 PagedListPager 的代码:

@Html.PagedListPager(
    model,
    page => Url.Action("Index",
    new
    {
        page,
        sortOrder = ViewBag.CurrentSort,
        currentFilter = viewBag.CurrentFilter
    }
    ),
    new PagedListRenderOptions()
    {
        LiElementClasses = new List<string> {"myClass", "yourClass"}
    })  

在 PagedListRenderOptions 实例中,我如何 specify/add PagedListRenderOptions.OnlyShowFivePagesAtATime 的选项?


PagedListRenderOptions class 定义如下:

public class PagedListRenderOptions
{
    public PagedListRenderOptions();
    ...
    public static PagedListRenderOptions OnlyShowFivePagesAtATime { get; }
    public IEnumerable<string> LiElementClasses { get; set; }
    ....
}

更新

我认为这是可能的原因是因为以下是可能的并且有效:

Html.PagedListPager(
    model,
    page => Url.Action("Index",
    new
    {
        page,
        sortOrder = ViewBag.CurrentSort,
        currentFilter = viewBag.CurrentFilter
    }
    ),PagedListRenderOptions.OnlyShowFivePagesAtATime)  

是的,它被声明为 static 字段,并不打算设置。

它只是 returns 一个具有固定属性的只读 PagedListRenderOptions,因此您不需要创建一个。

您可以使用以下

@Html.PagedListPager(
model,
page => Url.Action("Index",
new
{
    page,
    sortOrder = ViewBag.CurrentSort,
    currentFilter = viewBag.CurrentFilter
}
),
new PagedListRenderOptions()
{
    LiElementClasses = new List<string> {"myClass", "yourClass"},
    //The following properties are the same as OnlyShowFivePagesAtATime
    DisplayLinkToFirstPage = PagedListDisplayMode.Never,
    DisplayLinkToLastPage = PagedListDisplayMode.Never,
    DisplayLinkToPreviousPage = PagedListDisplayMode.Always,
    DisplayLinkToNextPage = PagedListDisplayMode.Always,
    MaximumPageNumbersToDisplay = 5
}) 

考虑一个类似的案例。

您可以通过设置其 A、R、G、B 值来构建 Color 结构。但是,当您需要蓝色时,您可以只使用 Color.Blue,它是一个静态的、只读的 属性,它的 A、R、G、B 值是固定的,并且已经为您设置好了。