Я думаю, что мне не хватает некоторых принципов работы форм MVC.У меня есть форма поиска на моей домашней странице, которая имеет пять или шесть различных полей, по которым пользователь может искать.Так что у меня есть этот пост для моих результатов действий просто отлично.Действие Result выглядит следующим образом:
[HttpPost]
public ActionResult Results(SearchModel model)
{
ResultsModel results = new ResultsModel();
results.ResultList = SearchManager.Search(model).ToList();
return View("Results", results);
}
Я упростил приведенный выше метод для этого поста, но идея та же.Так что все это прекрасно работает.Моя страница результатов отображается со списком результатов, и мой пользователь находится по следующему адресу:
http://www.site.com/results
Итак ... теперь я хочу сделать что-то довольно распространенное.У меня есть два выпадающих списка на странице результатов."Сортировать по" и "# результатов на страницу".Как мне это сделать и отправить полный набор данных модели обратно на контроллер, чтобы я мог запросить новые параметры?В действительности класс SearchModel имеет около 60 различных полей.Потенциально все эти данные могут содержаться в модели.Как вы сохраняете это на странице «назад»?
Этот же вопрос меня немного озадачил, как сделать пейджинг.Мои ссылки на пейджинг отправляются по URL-адресу, например:
http://www.site.com/results/2
Но это предполагает, что мы отвечаем на запрос GET (я не хочу 60 полей данных в строке запроса) и что данные модели передаются между запросами GET, что, как я знаю, не так.
Как я уже сказал, я думаю, что мне не хватает некоторых основ работы с MVC 3, моделями и постами форм.
Может кто-нибудь помочь указать мне правильное направление здесь?Я буду рад отредактировать / обновить этот пост по мере необходимости, чтобы прояснить ситуацию.
РЕДАКТИРОВАТЬ : Я также хотел бы отметить, что я хотел бы избежать сохранения модели представления вПеременная сеанса.Этот сайт в конечном итоге будет сбалансирован по нагрузке в веб-ферме, и я действительно стараюсь по возможности избегать использования Session.Однако, если это единственная альтернатива, я настрою другого поставщика состояния сеанса, но я бы предпочел этого не делать.