MVC - Как структурировать представления для формы поиска с результатами на той же странице - PullRequest
1 голос
/ 16 мая 2009

У меня есть приложение MVC 1.0 на VS2008.

У меня есть веб-страница с полями формы поиска, а затем при нажатии кнопки поиска используется Ajax.BeginForm для загрузки результатов в div. Прекрасно работает!

Но в результатах есть пейджер, который просто использует привязку с href, передающую индекс страницы в действие контроллера.

Конечно, то же самое действие, которое используется при нажатии кнопки поиска.

Так что получается, что результаты отображаются на новой странице сами по себе. Потому что ссылки не вызываются с помощью Ajax.

Так как я могу структурировать свои представления и действия так, чтобы при нажатии на ссылку в пейджере что форма отправляется на действие, а также индекс страницы для результатов ??

Вы меня понимаете ??

Malcolm

Ответы [ 2 ]

1 голос
/ 16 мая 2009

Используйте jquery, чтобы якоря страниц отправляли ajax-вызов контроллеру. Возвращайте результаты в виде JSON или xhtml или любого другого формата, который вас порадует, и используйте его для замены содержимого div или для создания и замены содержимого, если JSON.

Если вы еще не копались в jquery, я очень рекомендую . Документация довольно отличная. Позвольте мне предоставить вам несколько полезных ссылок для этого:

Сериализатор JSON.net

Документация jQuery

хороший пример использования jquery для подкачки страниц

В примере в качестве источника используется RSS-канал (XML), но он должен помочь вам.

1 голос
/ 16 мая 2009

Мне кажется, я понимаю, что вы говорите.

В настоящее время вы используете Ajax для динамического обновления ваших результатов в div. Kewl.

Хитрость заключается в том, чтобы убедиться, что каждая «страница» в пейджере имеет аналогичную функцию javascript, определенную в событии onclick. Таким образом, пейджер не выполняет «обратную передачу» на сервер, но запускается метод javascript, который вызывает некоторый ajax.

вот пример HTML ...

<a href="#" onclick="DoPagedSearch(1)>1</a> | 
<a href="#" onclick="DoPagedSearch(2)>2</a> .. etc

это имеет смысл? убедитесь, что пейджер НЕ находится внутри формы и обратите внимание на символы «#»? это гарантирует, что когда вы нажимаете на текст, он не пытается перейти на другую страницу HTML, в другом месте.

Знаете ли вы, как подключить любой javascript к элементу html? Как создать HTML-код для пейджера?

попробуйте и держите нас в курсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...