ASP MVC Restful URL-адреса и Ajax-вызовы - PullRequest
2 голосов
/ 16 февраля 2010

Это распространенная проблема в ASP MVC.У меня есть простая форма поиска с четырьмя полями и кнопкой поиска.Кнопка поиска использует jquery для заполнения html-таблицы результатами.

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

Поскольку заполняющим вызовом был Ajax, URL-адрес не был перезаписан с надлежащим состоянием.

Есть ли в этом подход ASP MVC?Или мы застряли, делая сообщения обратно?

Ответы [ 2 ]

2 голосов
/ 16 февраля 2010

Вы всегда можете обновить свой URL в соответствии с поиском AJAX, который вы делаете.

Затем в событии готовности jQuery выполнить поиск с параметрами, сохраненными в URL, если они есть; )

Так что, как только пользователь перемещается или перезагружает поиск в закладках, taraaaaa! ... поиск остается: D

ОБНОВЛЕНИЕ: моя команда говорит, что использование хеш-метки в вашем URL будет самым чистым подходом: P

здесь >> Detection-Back-Button-hash-Change-In-URL-адрес << вы найдете информацию в уважении и некоторые методы; ) </p>

1 голос
/ 16 февраля 2010

Вообще говоря, для операции такого типа - сообщение назад (что на самом деле не то, чем оно является, вы просто переходите обратно на ту же страницу, и я предполагаю, что элементы являются частью операции GET, поэтому нет "сообщения" - это то, что вы не хотите.

Причина этого в том, что ваша структура URL становится небрежной. Если бы я хотел добавить в закладки результаты поиска, как бы я поступил так? Я не могу, потому что вы решили загружать огромное количество контента через AJAX.

Как правило, если вы загружаете большие объемы контента в браузер, у вас, как правило, должен быть URL-адрес для этого, поскольку он сам по себе является ресурсом.

Что касается поддержания состояния, если вы хотите сделать это без переписывания URL (другими словами, когда они переходят к «/ search», вам нужны предыдущие результаты), вы можете либо сохранить поля формы в файле cookie, и заполнить их. это из куки, или значений в URL, или использовать какую-либо базу данных для хранения настроек.

По сути, каждый раз, когда кто-то отправляет значения на эту страницу, вы записываете их в хранилище данных (файлы cookie, файлы, база данных и т. Д.). В противном случае, если на этой странице вы извлекаете их из магазина, используя то, что вы используете для идентификации текущего пользователя.

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