Каков наилучший способ реализовать главное меню AJAX? - PullRequest
1 голос
/ 02 февраля 2009

Я создаю сайт, используя ASP.NET MVC с большим количеством jQuery и AJAX, и мне бы хотелось, чтобы главное меню работало с AJAX, как более или менее остальная часть сайта.

В идеальном случае я бы хотел, чтобы мое главное меню 1) загрузить основной контент с помощью AJAX, если пользователь активировал JavaScript 2) изменить URL в адресной строке (чтобы включить копирование ссылки) 3) иметь мой код только в одном месте, что означает, что я не хочу иметь одинаковую разметку в .aspx View и .ascx PartialView.

Номер 1) У меня нет проблем с. Тем не менее, я понятия не имею, как мне сделать номер 2) без перезагрузки страницы. Есть идеи?

Я понимаю, что третью проблему можно решить , создав представление, визуализирующее каждый PartialView, но разве нет лучшего способа обойти это? Каким-то образом «обернуть» PartialView в Master сайта или что-то в Controller, прежде чем вернуть его клиенту?

Ответы [ 3 ]

1 голос
/ 02 февраля 2009

Я склонен согласиться с Робом (хотя я не буду голосовать за тебя;)). Методы JavaScript, такие как Ajax, не должны быть ядром вашего сайта без веской причины. Я бы порекомендовал поискать в Google такие термины, как «прогрессивное улучшение» и «ненавязчивый JavaScript».

Создайте хороший сайт RESTful, а затем улучшите его с помощью JavaScript и Ajax в тех местах, где он значительно повышает удобство работы пользователя.

0 голосов
/ 02 февраля 2009

Хотя я согласен с некоторыми другими комментариями о том, что ради него не загружается контент через AJAX, # 2 в вашем списке - это распространенная проблема, которая часто возникает при работе с AJAX и на которую стоит ответить.

только способ изменить URL без перезагрузки браузера - добавить # в конец. Пример:

http://www.yoursite.com/Content/About/#some-identifier

Другого пути нет. Вы можете посмотреть на такие сайты, как Facebook и Google Mail / Reader, чтобы увидеть пример этого.

Надеюсь, это поможет ...

0 голосов
/ 02 февраля 2009

Для # 2: Вы можете добавить #hash в конец URL: пример в вашем меню:

<a href="#helppage" onclick="opento('helppage')">Help Page</a>

А потом в вашем теле под нагрузкой:

if(document.location.hash) { opento(document.location.hash); }

Для # 3 Я не знаю ASP. К сожалению.

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