问题
I have the following model:
public class PagedClientViewModel
{
public int? Page { get; set; }
public PagedList.PagedList<ClientViewModel> Clients { get; set; }
public bool ShowAllClients { get; set; }
}
ShowAllClients is a checkbox that I'll use to further filter the list of clients returned from the server.
@Html.CheckBoxFor(model => model.ShowAllClients, new { id = "ShowAllClientsCheckbox" })
Here is my pager:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new { Page = page }), PagedListRenderOptions.DefaultPlusFirstAndLast)
Both the pager and checkbox are on the same form.
The problem that I'm having is that when I change page on the pager control, the checkbox is always set to false. This is happening because in the Index action, ShowAllClients is set to false.
How would I preserve the checkbox data when changing pages?
回答1:
I got this to work with the following:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new PagedClientViewModel { Page = page, ShowAllClients = Model.ShowAllClients }))
回答2:
Best solution if found so far is:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new { Page = page, param1="",param2="" }), PagedListRenderOptions.DefaultPlusFirstAndLast)
And yes it works.
来源:https://stackoverflow.com/questions/14356152/pagedlistpager-pass-additional-model-data