Member 12439143 Ответов: 1

Замена строки запроса в URL-адресе, сгенерированном pagedlist, на пользовательский URL-адрес


I am using PagedList in a fully functional pager and it is generating the query string for the indexed pages as expected. 

I wanted to know if there is a way the URL could be customized to eliminate the query string and add another Route parameter instead.
 
The following is my View :- 
   <pre>
    @model PagedList.Core.IPagedList<ActionAugerMVC.Models.Review>
    @using PagedList.Core.Mvc;
    @addTagHelper *, PagedList.Core.Mvc

    <div id='Paging' style="text-align:center">
         Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount
         <pager class="pager-container" list="@Model" 
                options="@PagedListRenderOptions.TwitterBootstrapPager" 
                asp-action="Index" asp-controller="Review" />
    </div> 

И вот мое действие контроллера :-

[Route("Reviews/calgary-tech-reviews")]
public IActionResult Index(int? page)
{
    int pageSize = 10;
    int pageIndex = 1;
    pageIndex = page.HasValue ? Convert.ToInt32(page) : 1;

    var review = unitOfWork.ReviewRepository.GetAll();
    return View(review.OrderByDescending(m=> m.Date).ToPagedList(pageIndex,pageSize));
}

Текущий URL-адрес выглядит следующим образом :-
http://localhost:63613/Reviews/calgary-tech-reviews?page=2

И я хочу, чтобы это выглядело так :-
http://localhost:63613/Reviews/calgary-tech-reviews/page-2/

ОПЕРАЦИОННАЯ
http://localhost:63613/Reviews/page-2/calgary-tech-reviews/

Любая помощь будет оценена по достоинству, так как я все еще новичок в этом деле !
Еще раз спасибо !

Что я уже пробовал:

Я попытался изучить реализацию и документацию PagedList, чтобы увидеть, как я могу переопределить его. Я действительно обнаружил, что все страницы были сгенерированы как теги с добавленной к ним quyerystring, поэтому я пытался найти способ отменить это.

1 Ответов

Рейтинг:
1

Dinesh Singh Kushwaha (Dev)

это может помочь :

[Route("Reviews/calgary-tech-reviews/page={page:int}")]