我有以下型号:
public class PagedClientViewModel
{
public int? Page { get; set; }
public PagedList.PagedList<ClientViewModel> Clients { get; set; }
public bool ShowAllClients { get; set; }
}
ShowAllClients是一个复选框,我将用它来进一步过滤从服务器返回的客户端列表。
@Html.CheckBoxFor(model => model.ShowAllClients, new { id = "ShowAllClientsCheckbox" })
这是我的寻呼机:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new { Page = page }), PagedListRenderOptions.DefaultPlusFirstAndLast)
寻呼机和复选框都在同一表格上。
我遇到的问题是,当我在寻呼机控件上更改页面时,复选框始终设置为false。这是因为在Index操作中,ShowAllClients设置为false。
更改页面时如何保留复选框数据?
答案 0 :(得分:8)
我得到了以下内容:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new PagedClientViewModel { Page = page, ShowAllClients = Model.ShowAllClients }))
答案 1 :(得分:0)
到目前为止找到的最佳解决方案是:
@Html.PagedListPager(Model.Clients, page => Url.Action("Index", new { Page = page, param1="",param2="" }), PagedListRenderOptions.DefaultPlusFirstAndLast)
是的,它有效。
答案 2 :(得分:0)
就我而言,模型是 PagedList.IPagedList。接下来,我使用存储在 ViewBag 中的“SearchModel”,以便它可以轻松传递。我需要更新的只是页码。
@Html.PagedListPager(Model, page =>
{
ViewBag.SearchModel.Page = page;
return Url.Action("Index", "Search", ViewBag.SearchModel);
})