2017-10-13 2 views
1

Ich verwende PagedList in einem voll funktionsfähigen Pager und generiert die Abfragezeichenfolge für die indizierten Seiten wie erwartet.Ersetzen der Abfragezeichenfolge in der von PagedList generierten URL mit benutzerdefinierter URL

Ich wollte wissen, ob es eine Möglichkeit gibt, wie die URL angepasst werden könnte, um die Abfragezeichenfolge zu eliminieren und stattdessen einen anderen Route-Parameter hinzuzufügen.

Das folgende ist meine Ansicht: -

@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> 

Und hier ist mein Controller-Aktion: -

[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)); 
} 

Die aktuelle URL sieht wie folgt aus: -

http://localhost:63613/Reviews/calgary-tech-reviews?page=2  

Und ich will es so aussehen: -

http://localhost:63613/Reviews/calgary-tech-reviews/page-2/ 

OR

http://localhost:63613/Reviews/page-2/calgary-tech-reviews/ 

Jede mögliche Unterstützung geschätzt werden, da ich das noch neu bin! Danke noch einmal!

Antwort

0

Auf Startup.cs Datei Methode Configure, fügen Sie eine Route, die Parameter zu erhalten:

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 
{ 
    //... 
    app.UseMvc(routes => 
    { 
     //... 
     routes.MapRoute(
      name: "paged", 
      template: "{controller=Reviews}/{action=Index}/page/{page=1}"); 
    }); 
} 

Jetzt können Sie öffnen: http://localhost:63613/Reviews/calgary-tech-reviews/page/2/

ich es nicht mit page/{page=1} mit page-{page=1} zu arbeiten, nur setzen könnte . page gibt im ersten Fall immer 0 zurück.

Wenn Sie es funktionieren lassen können, lassen Sie es mich bitte wissen. =)

+0

lass mich das versuchen, ich schätze deine Hilfe sehr. –

+0

Es scheint nichts zu beeinflussen, auch wenn die Route Decorators entfernt wurden. –

Verwandte Themen