martijnboland / MvcPaging

ASP.NET MVC Paging HTML helper
https://blogs.taiga.nl/martijn/2008/08/27/paging-with-aspnet-mvc/
MIT License
290 stars 144 forks source link

AddRouteValue and RouteValues conflict #38

Open M1chae1 opened 10 years ago

M1chae1 commented 10 years ago

I am using MvcPaging 2.1.0 downloaded by nuget

@Html.Pager(Model.PageSize, Model.PageNumber, Model.TotalItemCount,
    new AjaxOptions
    {
        UpdateTargetId = "PreOrderListContainer",
        OnSuccess = "indexAjaxCallback"
    }).Options(
        o => o.Action("IndexAjax")
              .AddRouteValue("sortOrder", ViewBag.sortOrder)
              .RouteValues(ViewBag.RouteValueDict)
              .DisplayTemplate("Bootstrap3Pagination")
              .MaxNrOfPages(10)
              .AlwaysAddFirstPageNumber()
)

The above pager will ignore the route value provided by AddRouteValue("sortOrder", ViewBag.sortOrder). i.e. the sortOrder will not be exists in the pager link generated.

I change Pager.Options lambda as below, i.e. use RouteValues before AddRouteValues.

o => o.Action("IndexAjax")
      .RouteValues(ViewBag.RouteValueDict)
      .AddRouteValue("sortOrder", ViewBag.sortOrder)
      .DisplayTemplate("Bootstrap3Pagination")
      .MaxNrOfPages(10)
      .AlwaysAddFirstPageNumber()

Both of the route values provided by RouteValues and AddRouteValue will be exists in the pager link generated.