Ich habe ein Problem mit pagedList.ASP.NET MVC Filterung Seitenliste
Ich habe eine Aufgabe, eine Ansicht mit Filter-Panel und Auslagerungsliste zu machen.
Meine Ansichten:
Index: Dies ist der Hauptansicht
@model WebUI.Areas.Admin.Models.Product.ProductSearchViewModel
<div class="row">
<div class="panel panel-default">
<div class="panel-heading text-center">
<h4 class="panel-title">
<a data-toggle="collapse" href="#filter">@Resources.Lang.Filter</a>
</h4>
</div>
<div id="filter" class="panel-collapse collapse">
<div class="panel-body">
@using (Ajax.BeginForm("ProductsList", "Product", new AjaxOptions { UpdateTargetId = "productsList" }, new { @id = "searchForm", @class = "form-horizontal" }))
{
// some items to filter
}
</div>
</div>
</div>
</div>
<div id="productsList" class="row">
// Here will be rendered partial view with pagedList
</div>
Teilansicht mit pagedList
@using PagedList.Mvc
@model PagedList.IPagedList<WebUI.Models.Product.RegularProductDomainModel>
@foreach (var item in Model)
{
@Html.Partial("_ProductSummary", item)
}
Страница @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) из @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("ProductsList", page = page}),
PagedListRenderOptions.EnableUnobtrusiveAjaxReplacing(new AjaxOptions() { HttpMethod = "POST", UpdateTargetId = "productsList" }))
-Controller
public ActionResult Index()
{
}
[HttpPost]
public ActionResult ProductsList(ProductSearchViewModel model, int page = 1, int pageSize = 5)
{
using (_unitOfWork = _factory.Create())
{
// prepare list of items
var products = _unitOfWork.ProductsRepository.GetProducts(model.CategoryID, model.BrandID, model.ProductStateID,null,true, model.Code)
.ToPagedList(page, pageSize);
return PartialView("_ProductsList", products);
}
}
F Filtern funktioniert großartig. Aber wenn ich Werte filtern und dann paging will, funktioniert es nicht, denn wenn ich auf Paging klicke, habe ich in der Steuerung mein ProductSearchViewModel nur mit den Standardwerten. Wie ich es verstehe, funktioniert es nicht, weil mein PartialView nichts über ProductSearchViewModel weiß, das wie in Index.chtml verwendet wird. Gibt es eine Möglichkeit, mein ProductSearchViewModel beim Paging an den Controller zu übergeben?