2015-09-12 3 views
0

У меня есть веб-страница с параметрами фильтра и создан простой класс для продолжения этого параметра Где() метод.ASP.NET MVC. Фильтрация PagedList по нескольким параметрам

Но есть одна проблема передать параметры по Html.Action.

Параметры поиска:

public class Document 
{ 
    public string Name { get; set; } 
    public string Title { get; set; } 
    public string Param1{ get; set; } 
    public string Param2{ get; set; } 
} 

Действие контроллера

public ActionResult Index(int? page, Document filter) 
    { 
     ViewBag.Params= documentFilter; 
     IEnumerable<Document> DocumentList = dbContext.Documents.ToList(); 
     DocumentList = DocumentList.CustomFilter(documentFilter); 
     var pageNumber = page ?? 1; 
     var onePageOfProducts = DocumentList.ToPagedList(pageNumber, 50); 
     ViewBag.Documents = onePageOfProducts; 
     return View(); 
    } 

фильтрации работает хорошо, но если вы используете контроль подкачки, PARAMS потеряет.

Paging помощник:

@Html.PagedListPager((IPagedList)ViewBag.Documents, 
page => Url.Action("Index", new { page , filter = (Document)ViewBag.filter})) 
//Also tried Model instead of ViewBag.filter 

Я не мог пройти Params для контроля действий.

Есть ли способ сделать это?

+0

'model' не работает, потому что вы не передаете модель с точки зрения, вы используете только' ViewBag'. Честно говоря, для того, чтобы просто учиться, притворяться, что «ViewBag» вообще не существует. То, как вы его используете, будет работать, но это неряшливо. –

ответ

1

Вам нужно использовать вызов ajax вместо помощника. Напишите параметры и параметры ввода ajax как почтовый метод.

Смежные вопросы