Передача PaginatedList в ActionResult MVC C # - PullRequest
0 голосов
/ 25 мая 2010

Я хотел создать простой постраничный поиск для моего проекта. У меня проблемы с моей страницей расширенного поиска, где у меня есть несколько текстовых полей, которые пользователь может заполнить соответствующими данными (в основном, просто несколькими фильтрами).

Мой взгляд строго типизирован с помощью класса paginatedList, аналогичного учебному пособию NerdDinner.

В моем контроллере я хотел передать PaginatedList в качестве параметра, поскольку мое представление содержит несколько битов информации из модели PaginatedList. PaginatedList был нулевым (как параметр), затем я изменил добавленный маршрут; сам объект больше не является нулевым, но значения.

Вид:

<%= Html.TextBox("Manufacturers", Model.Manufacturers) %>
<%= Html.TextBox("OtherFilters", Model.FilterX) %>
//...etc etc

Контроллер:

public ActionResult AdvancedSearchResults(PaginatedList<MyModel> paginatedList) {
//...
}

Есть идеи? Я даже правильно говорю об этом? Должен ли я создать ViewModel, которая инкапсулирует информацию paginatedList, а также дополнительную информацию, которая мне нужна?

1 Ответ

0 голосов
/ 25 мая 2010

Возможно, вы захотите создать SearchCriteria класс, который содержит входные данные пользователя для фильтрации.

Контроллер будет иметь следующее действие:

public ActionResult AdvancedSearchResults(SearchCriteria criteria)
{
    PaginatedList<MyModel> result = SearchService.Search(criteria);
    return View(result);
}
...