Не работает пагинация в asp net mvc

Помогите, пожалуйста! Срочно нужно понять, в чем ошибка вывода в пагинации!!

У меня проект: генерация тестов. Нужно, чтобы один вопрос выводился на одну страницу. Вопрос выводится и стрелки тоже, но почему-то на следующей странице вопрос остается тем же, что и на предыдущей странице и стрелка на предыдущую страницу не появляется. Будто не идет цикл и данные остаются теми же. В чем проблема?

PageViewModel

    public int PageNumber { get; private set; }
    public int TotalPages { get; private set; }

    public PageViewModel(int count, int pageNumber, int pageSize)
    {
        PageNumber = pageNumber;
        TotalPages = (int)Math.Ceiling(count / (double)pageSize);
    }

    public bool HasPreviousPage
    {
        get
        {
            return (PageNumber > 1);
        }
    }

    public bool HasNextPage
    {
        get
        {
            return (PageNumber < TotalPages);
        }
    }

QuestAnswersViewModel - основной ViewModel

    public QuestAnswersViewModel()
    {
        QuestValues = new Dictionary<long, string>();
        AnswerValues = new Dictionary<long, string>();
    }
    public Dictionary<long, string> QuestValues { get; set; }
    public Dictionary<long, string> AnswerValues { get; set; }
    public PageViewModel PageViewModel { get; set; }

QuestionsController

    private readonly SaitDbContext db;
    private long UserId { get; set; }
    public QuestionsController(SaitDbContext context)
    {
        db = context;
    }

    /// <summary>
    /// Вывод вопросов
    /// </summary>
    /// <returns></returns>
    [HttpGet]
    public async Task<IActionResult> Index()
    {
        QuestAnswersViewModel questAnswers = new QuestAnswersViewModel();
        if (questAnswers.QuestValues.Count == 0)
        {
            UserId = db.Users.FirstOrDefault(x => x.Id == int.Parse(User.Identity.GetUserId())).EmployeeId;
            GetQuestionsAnswers(questAnswers);
        }
        return View(questAnswers);
    }

    [HttpPost]
    [ValidateAntiForgeryToken]
    public async Task<IActionResult> Index(QuestAnswersViewModel questAnswersViewModel)
    {
        if (ModelState.IsValid)
        {
            try
            {
                UserId = db.Users.FirstOrDefault(x => x.Id == int.Parse(User.Identity.GetUserId())).EmployeeId;
                foreach (var studentAnswerValue in questAnswersViewModel.AnswerValues)
                {
                    var quest = await db.Questions.FindAsync(studentAnswerValue.Key);
                    var studentAnswer = new StudentAnswer()
                    {
                        QuestionId = quest.Id,
                        QuestionsTopicId = quest.QuestionTopcId,
                        RangId = quest.RangsId,
                        StudentId = UserId,
                        Answer = studentAnswerValue.Value
                    };

                    Answers answer = db.Answers.FirstOrDefault(x => x.QuestionId == quest.Id);
                    if (answer.ValueAnswer == studentAnswer.Answer)
                        studentAnswer.IsCheck = true;
                    else
                        studentAnswer.IsCheck = false;

                    db.StudentAnswers.Add(studentAnswer);
                }
                await db.SaveChangesAsync();
            }
            catch(DbUpdateException ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        return RedirectToAction("Index");
    }

    private void GetQuestionsAnswers(QuestAnswersViewModel model,int page=1)
    {
        int pageSize = 1;
        var studentAnswersDb = db.StudentAnswers
            .Where(x => x.StudentId == UserId).ToList();
        List<Questions> questions = new List<Questions>();
        if(studentAnswersDb.Count > 0)
        {
            var studentAnswers = studentAnswersDb
            .GroupBy(x => x.QuestionsTopicId)
            .OrderBy(x => x.Key)
            .ToList();
            foreach (var answer in studentAnswers)
            {
                if(answer.LastOrDefault().IsCheck == true)
                {
                    if(db.Questions.Any(x => x.RangsId > answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key))
                    {
                        questions.Add(db.Questions.Where(x => x.RangsId > answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key).FirstOrDefault());
                    }
                    else
                    {
                        if (db.Questions.Any(x => x.Id > answer.LastOrDefault().QuestionId && x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key))
                        {
                            questions.Add(db.Questions.Where(x => x.Id > answer.LastOrDefault().QuestionId && x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key).FirstOrDefault());
                        }
                        else
                        {
                            questions.Add(db.Questions.Where(x => x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key).FirstOrDefault());
                        }
                    }
                }
                else
                {
                    if(db.Questions.Any(x => x.Id > answer.LastOrDefault().QuestionId && x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key))
                    {
                        questions.Add(db.Questions.Where(x => x.Id > answer.LastOrDefault().QuestionId && x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key).FirstOrDefault());
                    }
                    else
                    {
                        questions.Add(db.Questions.Where(x => x.RangsId == answer.LastOrDefault().RangId && x.QuestionTopcId == answer.Key).FirstOrDefault());
                    }
                }
            }
        }
        else
        {
            db.Questions
                .Where(x => x.RangsId == 1 && x.NumberQuest == 1).ToList()
                .ForEach(y => questions.Add(y));
        }
        //пагинация
        var count = questions.Count();
        var items = questions.Skip((page - 1) * pageSize).Take(pageSize).ToList();

        foreach (var quest in items)
        {
            model.PageViewModel = new PageViewModel(count, page, pageSize);
            model.QuestValues.Add(quest.Id, quest.ValueQuest);
            model.AnswerValues.Add(quest.Id, "");
        }
    }

    private bool QuestionsExists(long id)
    {
        return db.Questions.Any(e => e.Id == id);
    }

Index.cshtml


@{
    ViewData["Title"] = "Вопросы";
}
<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width"/>
    <title>Вариант 1</title>
</head>

<style>
        @@font-face {
            font-family: 'FontAwesome';
            src: url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2') format('woff2'), 
            url('https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/fonts/fontawesome-webfont.woff') format('woff'), 
            url('https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/fonts/fontawesome-webfont.ttf') format('truetype');
            font-weight: normal;
            font-style: normal
        }
        .glyphicon {
            display: inline-block;
            font: normal normal normal 14px/1 FontAwesome;
            font-size: inherit;
            text-rendering: auto;
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale
        }
        .glyphicon-chevron-right:before {
            content: "\f054";
        }
        .glyphicon-chevron-left:before {
            content: "\f053";
        }
    </style>
 
<body>
    @using(Html.BeginForm())
    {
        @foreach(var kvpair in Model.QuestValues)
        {
            <div class="col-md-10">
                @Html.DisplayFor(m=>m.QuestValues[kvpair.Key])
                @Html.EditorFor(m=>m.AnswerValues[kvpair.Key])
            </div>
        }
        <div class="form-group">
                <input type="submit" value="Save" class="btn btn-primary" />
            </div>
    }
@if (Model.PageViewModel.HasPreviousPage)
{
    <a asp-action="Index"
       asp-route-page="@(Model.PageViewModel.PageNumber - 1)"
       class="btn  btn-outline-dark">
        <i class="glyphicon glyphicon-chevron-left"></i>
        Назад
    </a>
}
@if (Model.PageViewModel.HasNextPage)
{
    <a asp-action="Index"
       asp-route-page="@(Model.PageViewModel.PageNumber + 1)"
       class="btn btn-outline-dark">
        Вперед
        <i class="glyphicon glyphicon-chevron-right"></i>
    </a>
}
</body>
</html>```

Ответы (0 шт):