Belangrijke mededeling over deze pagina:

Deze pagina is niet beschikbaar in het Nederlands en daarom wordt de Engelse versie van het artikel getoond. Dit komt vooral voor bij technische artikelen.

When you get a lot of items in your list such as news, you obviously want to use pagination. By installing the PagedList.Mvc NuGet package you can easily accomplish this. So I added it to my project and got pagination. However, when I wanted to navigate to the next page, I ran into a problem with the generated URL from:

@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

The generated URL for the second page is /api/sitecore/News?page=2. Of course, this doesn't work and results in an error message: The resource cannot be found. In my case the URL should be /News?page=2, without /api/sitecore/.

In order to get the /api/sitecore/ part removed, I have edited the Url.Action section, which didn't help. Then I created a custom route. This changed the URL as I wanted, but the solution wasn't okay for me.

So I eventually modified the part after "page =>". The code is now:

@Html.PagedListPager(Model, page => LinkManager.GetItemUrl(Sitecore.Context.Item) + "?page=" + page)

Instead of:

@Html.PagedListPager(Model, page => Url.Action("Index", new { page }))

The URL no longer contains the /api/sitecore/ part, and it has become a dynamic URL based on the current page.

Plaats een reactie