У меня есть приведенный ниже код для 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 указать/добавить параметр для PagedListRenderOptions.OnlyShowFivePagesAtATime?
Класс PagedListRenderOptions определяется следующим образом:
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 и не предназначено для установки.
Он просто возвращает 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
})
Рассмотрим аналогичный случай.
Вы можете построить структуру Color, установив ее значение A,R,G,B. Однако, когда вам нужен синий цвет, вы можете просто использовать Цвет синий, которое является статическим свойством только для чтения, его значения A, R, G, B фиксированы и уже установлены для вас.
Это имеет смысл, я это прекрасно понимаю, но по какой-то причине вы можете передать это свойство как опцию в инициализаторе PagedListPager. Смотрите мое обновление. Но вы правы, судя по всему, это невозможно с тем способом, на который я надеюсь...
Итак, я думаю, что мы согласны. Вы можете попробовать объявить переменную ‘var option = PagedListRenderOptions.OnlyShowFivePagesAtATime;’ и добавить к переменной дополнительные свойства. А затем передать эту переменную в метод. Но просто не могу сделать это в одну строку.
Я уже реализовал аналогичный тому, что у вас есть в ответе, с некоторыми классами элементов. Это лучший способ.
Я знаю, что
OnlyShowFivePagesAtATimeобъявлен как статический и без сеттера. Но ведь есть способ передать это как вариант?