У меня есть веб-страница с параметрами фильтра и создан простой класс для продолжения этого параметра Где() метод.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 для контроля действий.
Есть ли способ сделать это?
'model' не работает, потому что вы не передаете модель с точки зрения, вы используете только' ViewBag'. Честно говоря, для того, чтобы просто учиться, притворяться, что «ViewBag» вообще не существует. То, как вы его используете, будет работать, но это неряшливо. –