public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next) { var executedContext = await next(); if (executedContext.Result is ViewResult result && result.Model is IQueryable <ModelBase> model) { var itemCount = await model.CountAsync(); var requestData = GetRequestPagingData(executedContext.HttpContext.Request); var pageSize = PagingHelper.CheckPageSize(requestData.pageSize); var pageNumber = requestData.page > 0 ? requestData.page : 1; var pageCount = PagingHelper.GetPageCount(pageSize, itemCount); result.ViewData.Model = SetPageQuery(model, pageNumber, pageSize); result.ViewData.Add("pageCount", pageCount); result.ViewData.Add("pageSize", pageSize); result.ViewData.Add("pageNumber", pageNumber); } }