Что я пытаюсь заставить работать, так это маршрутизацию текущего размера страницы в метод Get при нажатии кнопки поиска.
Вот моя форма поиска с главной страницы:
Find by @nameof(Data.Audit.Log.Level):
Please select
|
Back to full List
А вот метод Get на странице Index:
public PaginatedList Logs { get; set; }
public LogLevel? LevelFilter { get; set; }
public async Task OnGetAsync(int? pageIndex, int? pageSize, int? prevPageSize, LogLevel? levelFilter)
{
LevelFilter = levelFilter;
if (prevPageSize != null && pageSize != null && pageIndex != null && pageIndex > 1)
{
pageIndex = PaginatedList.CalculateNewPageIndex(pageIndex.Value, prevPageSize.Value, pageSize.Value);
}
var query = DbContext.Logs.AsQueryable();
if(levelFilter != null)
{
query = query.Where(x => x.Level == levelFilter.ToString());
}
Logs = await PaginatedList.CreateAsync(query.OrderByDescending(x => x.Logged).AsNoTracking(), pageIndex ?? 1, pageSize ?? _defaultPageSize);
}
Как вы можете видеть в разметке .cshtml, я попытался поместить asp-route-pageSize в форму, ввод и даже в 'a ' в форме. Кажется, HTML-код сгенерирован правильно:

Кнопка «Назад к полному списку» работает правильно и сохраняет размер страницы, однако кнопка «Поиск» теряет его. Единственный добавленный параметр запроса в этом сценарии — это levelFilter. Есть идеи, что мне не хватает/что я делаю неправильно?
ОБНОВЛЕНИЕ. Вот весь .cshtml для справки:
@ViewData["Title"]
Find by @nameof(Data.Audit.Log.Level):
Please select
|
Back to full List
@Html.DisplayNameFor(model => model.Logs[0].Logged)
@Html.DisplayNameFor(model => model.Logs[0].Level)
@Html.DisplayNameFor(model => model.Logs[0].Message)
@Html.DisplayNameFor(model => model.Logs[0].UserName)
@Html.DisplayNameFor(model => model.Logs[0].Category)
Action
@foreach (var item in Model.Logs)
{
@Html.DisplayFor(modelItem => item.Logged)
@Html.DisplayFor(modelItem => item.Level)
@Html.DisplayFor(modelItem => item.Message)
@Html.DisplayFor(modelItem => item.UserName)
@Html.DisplayFor(modelItem => item.Category)
Details
}
@if (Model.Logs.HasPrevPage)
{
Prev
}
@if (Model.Logs.ShowFirstPage)
{
1
...
}
@for (int i = Model.Logs.MinPage; i
Подробнее здесь: https://stackoverflow.com/questions/768 ... mit-action