【问题标题】:ASP.NET MVC filtering pagedlistASP.NET MVC 过滤分页列表
【发布时间】:2016-06-17 12:05:10
【问题描述】:

pagedList 有问题。

我的任务是使用过滤器面板和分页列表制作视图。

我的看法:

索引: 这是主视图

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

分页列表的部分视图

@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" }))

控制器

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

过滤效果很好。但是,如果我想过滤值然后进行分页它不起作用,因为当我单击分页时,在控制器中我的 ProductSearchViewModel 只有默认值。据我了解,它不起作用,因为我的 PartialView 对 ProductSearchViewModel 一无所知,它在 Index.chtml 中使用。当我进行分页时,有什么方法可以将我的 ProductSearchViewModel 传递给控制器​​?

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4


    【解决方案1】:

    我可以看到两种可能的解决方案...

    1.) 将 ProductSearchViewModel(或其中的值)传递到分部视图中,这样您就可以从那里将其传递到寻呼机助手中。这可以通过创建一个包含 ProductSearchViewModel 以及您的分页列表的新 ViewModel 来实现,或者在返回视图之前简单地放入 ViewData。

    2.) 将分页移至主视图(索引),以便您可以将 ProductSearchViewModel 与页码一起传递。

    【讨论】:

      猜你喜欢
      • 2011-06-04
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-14
      相关资源
      最近更新 更多